1、PHP语言的一大优势是跨平台,什么是跨平台?PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows、Linux等)上配置,不受操作系统的限制,所以叫跨平台
2、WEB开发中数据提交方式有几种?有什么区别?百度使用哪种方式?Get与post两种方式区别:1.Get从服务器获取数据,post向服务器传送数据2.Get传值在url中可见,post在url中不可见3.Get传值一般在2KB以内,post传值大小可以在php.ini中进行设置4.get安全性非低,post安全性较高,执行效率却比Post高建议:1、get式安全性较Post式要差些包含机密信息建议用Post数据提交式;2、做数据查询建议用Get式;做数据添加、修改或删除建议用Post方式;百度使用的get方式,因为可以从它的URL中看出
3、掌握PHP的哪些框架、模板引擎、系统等框架:框架有很多,例如zendframe、CI、Yii等等,咱们学过的是thinkphp模板引擎:也有很多,在课本中有,咱们学过的是smarty系统:有很多,例如:康盛的产品(uchome、supesite、discuzX等),帝国系统、DEDE(织梦)、ecshop等,咱们学过的是DEDECMS、Ecshop
4、说一下你所掌握的网页前端技术有哪些?熟练掌握DIV+CSS网页布局,JavaScript、jQuery框架、photoshop图片处理
5、AJAX的优势是什么?ajax是异步传输技术,可以通过javascript实现,也可以通过JQuery框架实现,实现局部刷新,减轻了服务器的压力,也提高了用户体验
6、安全对一套程序来说至关重要,请说说在开发中应该注意哪些安全机制?①防远程提交;②防SQL注入,对特殊代码进行过滤;③防止注册机灌水,使用验证码;
7、在程序的开发中,如何提高程序的运行效率?①优化SQL语句,查询语句中尽量不使用select*,用哪个字段查哪个字段;少用子查询可用表连接代替;少用模糊查询;②数据表中创建索引;③对程序中经常用到的数据生成缓存;
8、PHP可否与其它的数据库搭配使用?PHP与MYSQL数据库是最优搭配,当然PHP也可以去其它的数据库搭配使用,例如MSSQL等,PHP中预留了操作MSSQL的函数,只要开启就可以使用
9、现在编程中经常采取MVC三层结构,请问MVC分别指哪三层,有什么优点?MVC三层分别指:业务模型、视图、控制器,由控制器层调用模型处理数据,然后将数据映射到视图层进行显示,优点是:①可以实现代码的重用性,避免产生代码冗余;②M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式
10、对json数据格式的理解?JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,json数据格式固定,可以被多种语言用作数据的传递PHP中处理json格式的函数为json_decode(string$json[,bool$assoc]),接受一个JSON格式的字符串并且把它转换为PHP变量,参数json待解码的jsonstring格式的字符串。assoc当该参数为TRUE时,将返回array而非object;Json_encode:将PHP变量转换成json格式
12、SESSION与COOKIE的区别?①存储位置:session存储于服务器,cookie存储于浏览器②安全性:session安全性比cookie高③session为‘会话服务’,在使用时需要开启服务,cookie不需要开启,可以直接用
13、PHP处理数组的常用函数?(重点看函数的‘参数’和‘返回值’)①array()创建数组;②count()返回数组中元素的数目;③array_push()将一个或多个元素插入数组的末尾(入栈);④array_column()返回输入数组中某个单一列的值;⑤array_combine()通过合并两个数组来创建一个新数组;⑥array_reverse()以相反的顺序返回数组;⑦array_unique()删除数组中的重复值;⑧in_array()检查数组中是否存在指定的值;
14、PHP处理字符串的常用函数?(重点看函数的‘参数’和‘返回值’)①trim()移除字符串两侧的空白字符和其他字符;②substr_replace()把字符串的一部分替换为另一个字符串;③substr_count()计算子串在字符串中出现的次数;④substr()返回字符串的一部分;⑤strtolower()把字符串转换为小写字母;⑥strtoupper()把字符串转换为大写字母;⑦strtr()转换字符串中特定的字符;⑧strrchr()查找字符串在另一个字符串中最后一次出现;⑨strstr()查找字符串在另一字符串中的第一次出现(对大小写敏感);strrev()反转字符串;strlen()返回字符串的长度;str_replace()替换字符串中的一些字符(对大小写敏感);print()输出一个或多个字符串;explode()把字符串打散为数组;is_string()检测变量是否是字符串;strip_tags()从一个字符串中去除HTML标签;mb_substr()用来截中文与英文的函数
16、PHP处理数据库的常用函数?(重点看函数的‘参数’和‘返回值’)请参照php手册,认真查看,此项非常重要
17、PHP操作文件的常用函数?(重点看函数的‘参数’和‘返回值’)①打开文件;②删除文件;③读取文件;④写入文件;⑤修改文件;⑥关闭文件;⑦创建文件等等,此项非常重要,在工作中经常用来生成缓存或者静态文件,请参照php手册,认真查看
18、PHP操作目录(文件夹)的常用函数?(重点看函数的‘参数’和‘返回值’)①打开目录;②删除目录;③读取目录;④创建目录;⑤修改目录;⑥关闭目录等等,此项非常重要,在工作中经常用来创建或者删除上传文件的目录,创建或者删除缓存、静态页面的目录,请参照php手册,认真查看
二:数据库部分返回顶部
1.常见的关系型数据库管理系统产品有?答:Oracle、SQLServer、MySQL、Sybase、DB2、Access等。
2.SQL语言包括哪几部分?每部分都有哪些操作关键字?答:SQL语言包括数据定义(DDL)、数据操纵(DML),数据控制(DCL)和数据查询(DQL)四个部分。数据定义:CreateTable,AlterTable,DropTable,Craete/DropIndex等数据操纵:Select,insert,update,delete,数据控制:grant,revoke数据查询:select
3.完整性约束包括哪些?答:数据完整性(DataIntegrity)是指数据的精确(Accuracy)和可靠性(Reliability)。分为以下四类:1)实体完整性:规定表的每一行在表中是惟一的实体。2)域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。3)参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。4)用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。与表有关的约束:包括列约束(NOTNULL(非空约束))和表约束(PRIMARYKEY、foreignkey、check、UNIQUE)。
4.什么是事务?及其特性?答:事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。事务特性:(1)原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。(2)一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态(3)隔离性。在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务,(4)持久性。事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存。或者这样理解:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。
5.什么是锁?答:数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。基本锁类型:锁包括行级锁和表级锁
6.什么叫视图?游标是什么?答:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。
7.什么是存储过程?用什么来调用?答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。
8.索引的作用?和它的优点缺点是什么?答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
9.如何通俗地理解三个范式?答:第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。。
10.什么是基本表?什么是视图?答:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表
11.试述视图的优点?答:(1)视图能够简化用户的操作(2)视图使用户能以多种角度看待同一数据;(3)视图为数据库提供了一定程度的逻辑独立性;(4)视图能够对机密数据提供安全保护。
12.NULL是什么意思答:NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个NULL值进行比较,并在逻辑上希望获得一个答案。使用ISNULL来进行NULL判断
13.主键、外键和索引的区别?主键、外键和索引的区别定义:主键–唯一标识一条记录,不能有重复的,不允许为空外键–表的外键是另一表的主键,外键可以有重复的,可以是空值索引–该字段没有重复值,但可以有一个空值作用:主键–用来保证数据完整性外键–用来和其他表建立联系用的索引–是提高查询排序的速度个数:主键–主键只能有一个外键–一个表可以有多个外键索引–一个表可以有多个唯一索引
14.你可以用什么来确保表格里的字段只接受特定范围里的值答:Check限制,它在数据库表格里被定义,用来限制输入该列的值。触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。
15.说说对SQL语句优化有哪些方法?(选择几条)(1)Where子句中:where表之间的连接必须写在其他Where条件之前,那些可以过滤掉最大数量记录的条件必须写在Where子句的末尾.HAVING最后。(2)用EXISTS替代IN、用NOTEXISTS替代NOTIN。(3)避免在索引列上使用计算(4)避免在索引列上使用ISNULL和ISNOTNULL(5)对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。(6)应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描(7)应尽量避免在where子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描
17.char和varchar的区别?答:是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).
18.Mysql的存储引擎,myisam和innodb的区别。答:简单的表达:MyISAM是非事务的存储引擎;适合用于频繁查询的应用;表锁,不会出现死锁;适合小数据,小并发innodb是支持事务的存储引擎;合于插入和更新操作比较多的应用;设计合理的话是行锁(最大区别就在锁的级别上);适合大数据,大并发。
19.数据表类型有哪些答:MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等。MyISAM:成熟、稳定、易于管理,快速读取。一些功能不支持(事务等),表级锁。InnoDB:支持事务、外键等特性、数据行锁定。空间占用大,不支持全文索引等。
20.MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?a.设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。b.选择合适的表字段数据类型和存储引擎,适当的添加索引。c.mysql库主从读写分离。d.找规律分表,减少单表中的数据量提高查询速度。e.添加缓存机制,比如memcached,apc等。f.不经常改动的页面,生成静态页面。g.书写高效率的SQL。比如
SELECT*FROMTABEL改为SELECTfield_1,field_2,field_3FROMTABLE.1SELECT*FROMTABEL改为SELECTfield_1,field_2,field_3FROMTABLE.21.对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?答:a.确认服务器是否能支撑当前访问量。b.优化数据库访问。c.禁止外部访问链接(盗链),比如图片盗链。d.控制文件下载。e.使用不同主机分流。f.使用浏览统计软件,了解访问量,有针对性的进行优化。
三:面向对象部分返回顶部
1、什么是面向对象(理解着回答)答:面向对象OO=面向对象的分析OOA+面向对象的设计OOD+面向对象的编程OOP;通俗的解释就是“万物皆对象”,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数。
现在纯正的OO语言主要是Java和C#,PHP、C++也支持OO,C是面向过程的。
2、简述private、protected、public修饰符的访问权限。答:private:私有成员,在类的内部才可以访问。
protected:保护成员,该类内部和继承类中可以访问。
public:公共成员,完全公开,没有访问限制。
3、堆和栈的区别?答:栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;
堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。
4、XML与HTML的主要区别答:(1)XML是区分大小写字母的,HTML不区分。(2)在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束标记。在XML中,绝对不能省略掉结束标记。(3)在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/字符作为结尾。这样分析器就知道不用查找结束标记了。(4)在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。(5)在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。
8、如何重载父类的方法,举例说明答:重载,即覆盖父类的方法,也就是使用子类中的方法替换从父类中继承的方法,也叫方法的重写。覆盖父类方法的关键是在子类中创建于父类中相同的方法包括方法的名称、参数和返回值类型。PHP中只要求方法的名称相同即可。
9、常用的魔术方法有哪些?举例说明答:php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法。__construct()实例化类时自动调用。__destruct()类对象使用结束时自动调用。__set()在给未定义的属性赋值的时候调用。__get()调用未定义的属性时候调用。__isset()使用isset()或empty()函数时候会调用。__unset()使用unset()时候会调用。__sleep()使用serialize序列化时候调用。__wakeup()使用unserialize反序列化的时候调用。__call()调用一个不存在的方法的时候调用。__callStatic()调用一个不存在的静态方法是调用。__toString()把对象转换成字符串的时候会调用。比如echo。__invoke()当尝试把对象当方法调用时调用。__set_state()当使用var_export()函数时候调用。接受一个数组参数。__clone()当使用clone复制一个对象时候调用。
10、$this和self、parent这三个关键词分别代表什么?在哪些场合下使用?答:$this当前对象self当前类parent当前类的父类$this在当前类中使用,使用->调用属性和方法。self也在当前类中使用,不过需要使用::调用。parent在类中使用。
11、类中如何定义常量、如何类中调用常量、如何在类外调用常量。答:类中的常量也就是成员常量,常量就是不会改变的量,是一个恒值。定义常量使用关键字const.例如:constPI=3.1415326;无论是类内还是类外,常量的访问和变量是不一样的,常量不需要实例化对象,访问常量的格式都是类名加作用域操作符号(双冒号)来调用。即:类名::类常量名;
12、作用域操作符::如何使用?都在哪些场合下使用?答:调用类常量调用静态方法
13、__autoload()方法的工作原理是什么?答:使用这个魔术函数的基本条件是类文件的文件名要和类的名字保持一致。当程序执行到实例化某个类的时候,如果在实例化前没有引入这个类文件,那么就自动执行__autoload()函数。这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下确实存在这个类文件后就执行include或者require来载入该类,然后程序继续执行,如果这个路径下不存在该文件时就提示错误。使用自动载入的魔术函数可以不必要写很多个include或者require函数。
四:ThinkPHP部分返回顶部
1、常见的PHP框架答:thinkPHP、yii、ZendFramework、CakePhp、sy
3、ThinkPHP中的MVC分层是什么?(理解)答:MVC是一种将应用程序的逻辑层和表现层进行分离的方法。ThinkPHP也是基于MVC设计模式的。MVC只是一个抽象的概念,并没有特别明确的规定,ThinkPHP中的MVC分层大致体现在:模型(M):模型的定义由Model类来完成。控制器(C):应用控制器(核心控制器App类)和Action控制器都承担了控制器的角色,Action控制器完成业务过程控制,而应用控制器负责调度控制。视图(V):由View类和模板文件组成,模板做到了100%分离,可以独立预览和制作。但实际上,ThinkPHP并不依赖M或者V,也就是说没有模型或者视图也一样可以工作。甚至也不依赖C,这是因为ThinkPHP在Action之上还有一个总控制器,即App控制器,负责应用的总调度。在没有C的情况下,必然存在视图V,否则就不再是一个完整的应用。总而言之,ThinkPHP的MVC模式只是提供了一种敏捷开发的手段,而不是拘泥于MVC本身。
5、如何理解ThinkPHP3.0架构三(核心+行为+驱动)中的行为?答:核心+行为+驱动TP官方简称为:CBD核心(Core):就是框架的核心代码,不可缺少的东西,TP本身是基于MVC思想开发的框架。行为(Behavior):行为在新版ThinkPHP的架构里面起着举足轻重的作用,在系统核心之上,设置了很多标签扩展位,而每个标签位置可以依次执行各自的独立行为。行为扩展就因此而诞生了,而且很多系统功能也是通过内置的行为扩展完成的,所有行为扩展都是可替换和增加的,由此形成了底层框架可组装的基础。驱动(Driver):数据库驱动、缓存驱动、标签库驱动和模板引擎驱动,以及外置的类扩展。框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
6、什么是惯例配置?答:惯例配置上一页下一页惯例重于配置是系统遵循的一个重要思想,系统内置有一个惯例配置文件(位于系统目录下面的Conf\convention.php),按照大多数的使用对常用参数进行了默认配置。所以,对应用项目的配置文件,往往只需要配置和惯例配置不同的或者新增的配置参数,如果你完全采用默认配置,甚至可以不需要定义任何配置文件。惯例配置文件会被系统自动加载,无需在项目中进行加载。
7、什么是SQL注入?(理解)答:SQL注入攻击是黑客对数据库进行攻击的常用手段之一。一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,注入者可以在表单中输入一段数据库查询代码并提交,程序将提交的信息拼凑生成一个完整sql语句,服务器被欺骗而执行该条恶意的SQL命令。注入者根据程序返回的结果,成功获取一些敏感数据,甚至控制整个服务器,这就是SQL注入。
8、ThinkPHP如何防止SQL注入?(理解)答:(1)查询条件尽量使用数组方式,这是更为安全的方式;(2)如果不得已必须使用字符串查询条件,使用预处理机制;(3)开启数据字段类型验证,可以对数值数据类型做强制转换;(3.1版本开始已经强制进行字段类型验证了)(4)使用自动验证和自动完成机制进行针对应用的自定义过滤;(5)使用字段类型检查、自动验证和自动完成机制等避免恶意数据的输入。
9、如何开启调试模式?调试模式有什么好处?答:开启调试模式很简单,只需要在入口文件中增加一行常量定义代码:
开启调试模式开启调试模式在完成开发阶段部署到生产环境后,只需要删除调试模式定义代码即可切换到部署模式。开启调试模式后,系统会首先加载系统默认的调试配置文件,然后加载项目的调试配置文件,调试模式的优势在于:开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;关闭模板缓存,模板修改可以即时生效;记录SQL日志,方便分析SQL;关闭字段缓存,数据表字段修改不受缓存影响;严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署问题;可以方便用于开发过程的不同阶段,包括开发、测试和演示等任何需要的情况,不同的应用模式可以配置独立的项目配置文件。
10、TP中支持哪些配置模式?优先级?答:ThinkPHP在项目配置上面创造了自己独有的分层配置模式,其配置层次体现在:惯例配置->项目配置->调试配置->分组配置->扩展配置->动态配置以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以优先顺序从右到左。
11、TP中的URL模式有哪几种?默认是哪种?答:ThinkPHP支持四种URL模式,可以通过设置URL_MODEL参数来定义,包括普通模式、PATHINFO、REWRITE和兼容模式。默认模式为:PATHINFO模式,设置URL_MODEL为1
12、TP中系统变量有哪些?如何获取系统变量?答:获取系统变量的方法:只需要在Action中调用下面方法:$this->方法名(“变量名”,[“过滤方法”],[“默认值”])
13、ThinkPHP框架中D函数与M函数的区别是什么?答:M方法实例化模型无需用户为每个数据表定义模型类,D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会自动调用M方法去实例化Model基类。同时对于已实例化过的模型,不会重复去实例化(单例模式)。
五:smarty模板引擎返回顶部
1、编译和缓存区别?smarty的编译过程就是把模板拿过来,把里面的标签替换成相应php代码,这就是smarty的编译,其实就是php和html混合的过程smarty的缓存需要手动开启,smarty的缓存就是把编译好的文件执行后,同时生成一份静态的html页面,再次访问的时候,你访问的就是是html文件了,所以就效率来说,要高一些
2、什么是smartySmarty的优点是什么Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。(也易于程序的多样式开发)Smarty优点1.速度快:相对其他模板引擎。2.编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件3.缓存技术:它可以将用户最终看到的HTML文件缓存成一个静态的HTML页4.插件技术:smarty可以自定义插件。不适合使用smarty的地方1.需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新2.小项目。小项目因为项目简单而美工与程序员兼于一人的项目
3、在模板中使用{$smarty}保留变量{$smarty.get.page}//类似在php脚本中访问$_GET[page]{smarty.cookies.}{smarty.post.}{smarty.session.}{smarty.server.}12345{$smarty.get.page}//类似在php脚本中访问$_GET[page]{smarty.cookies.}{smarty.post.}{smarty.session.}{smarty.server.}4.在模板中访问php中的变量在php脚本中有系统常量和自定义常量两种,同样这两种常量在Smarty模板中也可以被访问,而且不需要从php中分配,只要通过{$smarty}保留变量就可以直接输出常量的值。在模板中输出常量的示例:
{$smarty.const._MY_CONST_VAL}{$smarty.const.__FILE__}12{$smarty.const._MY_CONST_VAL}{$smarty.const.__FILE__}5、变量调解器变量调解器变量调解器6、php查询mysql数据库时,查询中文结果时出现的乱码。怎么解决?1.文件属性(另存为)2.文件meta(设置浏览器解析的时候)3.连接数据库时编码设定4.PHP文件中使用header函数确定编码
8、smarty的赋值和载入模板$Smarty->assign(name,value)$Smarty->display('index.html')12$Smarty->assign(name,value)$Smarty->display('index.html')9、marty模板技术的用途是什么?为了php与html分开,美工和程序员各司其职,互不干扰。
10、smarty配置主要有哪几项?1.引入smarty.class.php;2.实例化smarty对象;3.重新修改默认的模板路径;4.重新修改默认的编译后文件的路径;5.重新修改默认的配置文件的路径;6.重新修改默认的cache的路径。7.可以设置是否开启cache。8.可以设置左侧和右侧定界符。
11、smarty在使用过程中需要注意哪些细节?Smarty是基于MVC概念的一种模板引擎,它将一个页面程序分成了两部分来实现:即视图层和控制层,也就是说smarty技术将用户UI与php代码分离开。这样程序员和美工各司其职,互不干扰。
12、smarty运用过程中要注意以下几个问题:1.正确配置smarty。主要要实例化smarty对象,配置smarty模板文件的路径;2.php页面中使用assign赋值和display显示页面;3.smarty模板文件中不允许出现php代码段,所有的注释,变量,函数都要包含在定界符内。A.{}B.foreachC.ifelseD.includeE.Literal
六、二次开发系统(DEDE、ecshop)返回顶部
1、对二次开发的理解二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。
2、MVCModel(模型)数据处理。View(视图)模板显示。Controller(控制器)控制流程。MVC的概念是什么?各层主要做什么工作?MVC(即模型-视图-控制器)是一种软件设计模式或者说编程思想。M指Model模型层,V是View视图层(显示层或者用户界面),C是Controller控制器层。使用mvc的目的是实现M和V分离,从而使得一个程序可以轻松使用不同的用户界面。在网站开发中,模型层一般负责对数据库表信息进行增删改查,视图层负责显示页面内容,控制器层在M和V之间起到调节作用,控制器层决定调用哪个model类的哪个方法,执行完毕后由控制器层决定将结果assign到哪个view层。
3、二次开发程序安装后访问时候出现一些警告以及错误根据错误,来修改服务器配置参数以及百度
4、功能,模板的更换,功能的添加修改其实也就是面向对象的应用用,以及模板的更换类似smarty的使用
5、用过哪些二次开发的东西?Dedecmsphpcmsecshop,基本这些的东西如果基础好了学习起来都是没问题的。
7、二次开发过程中很多类与类之间进行之间的方法访问,是通过什么方式传递的?不是类继承而是对象组合,把实例化好的对象通过global传递进去
8、dedecms如果更换目录,后台某项就进不去了如何解决?后台核心设置中修改成现在的项目目录名称
11、dede中几种标签的使用?列表内容等标签只能在其本范围内使用,列表标签只能在列表中使用,内容标签只能在内容标签中使用。全局标签能在所有页面中使用
12、熟悉常用类库(例如:dedesql.class.php);熟悉系统函数库(common.func.php);熟悉自定义函数库(extend.func.php);熟悉前台入口文件(common.inc.php)
3、将整个文件读入一个字符串的函数是File_get_contents
4、常用函数把xml数据解析成对象的函数是simplexml_load_string()将字符串转换为数组的函数是___explode_________,将数组转化为字符串的函数是____implode________.编码URL字符串的字符串是____urlencode________.