面试题汇总PHP程序.doc
《面试题汇总PHP程序.doc》由会员分享,可在线阅读,更多相关《面试题汇总PHP程序.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面试题汇总PHP程序是什么?怎么做?为什么?专 博1、写出五种以上你使用过的PHP的扩展的名称(提示:常用的PHP扩展)mysql、gd2、pdo、curl、mbstring、soap等,在php.ini中可以找到。尽量多了解一些扩展,了解他们的功能(能做什么)。2、了解MVC模式吗?请写出三种以上目前PHP流行的MVC框架名称(不区分大小写)MVC是Model(模型)、View(视觉)、Controll(控制器)的缩写。MVC(Model-View-Controller)介绍模型(Model): 应用程序的模型部分关心的是欲显示的数据的细节。模型通常关注的是应用程序的业务逻辑部分,关注的是如
2、何使用数据库来读取和保存数据。视图(View): 视图关心的是用户显示的部分,它通常是HTML。控制器(Controller):控制器将特定的模型和视图结合起来,保证将正确的数据显示到页面上。常用的MVC框架:Zend FrameworkFleaPHPCakePHPThinkPHPCI大家有时间可以对框架进入多一些的深入了解。3、用PHP打印出前一天的时间格式是2008-2-8 18:00:10echo 昨天:, date(Y-m-d H:i:s, strtotime(-1 day), ;echo 昨天:, date(Y-m-d H:i:s, mktime (date(H), date(i),
3、 date(s), date(m), date(d)-1, date(Y), ;参考strtotime.php mktime.php4、echo(),print(),print_r()的区别 var_dump()echo与print:它们都不是真正的函数,是一种语法结构(也有说print是函数,echo不是)。echo和print 后面都可不用加(),如: echo ok; print ok;运行速度echo稍快一些,因为echo并不返回值,print返回一个值int(1)。结论:1、一般用echo,除非三元运算时。$a=5; ($a=5) ? print 5: print 0;2、echo
4、后不要跟()。print_r是递归打印,主要用于输出数组对象。3、print只能有一个参数,所以不能不能用,而echo可以。参考 echo_print_print_r.php5、能够使HTML和PHP分离开使用的模板其实PHP本身就是一种模版引擎。参考require.php常用的模板引擎:smarty,还有PHPLib,FastTemplate,Savant等。模板引擎列表:6、如何实现字符串翻转?可用内置函数strrev。如果不准用PHP内置函数的就自己写:参考strrev2.phpHello-olleH7、$a = hello;$b = &$a;unset($b);$b = world;w
5、hat is $a? 参考references.php 此题的目的是要深刻理解引用。通常,在将一个变量的值赋给另外一个变量的时候,先产生原变量的一个副本,然后再将它保存在内存的其他地方。如:$a = 5;$b = $a;首先产生$a的一个副本,然后再将它保存到$b中。如果随后改变$a的值,$b的值不会改变:$a = 7; /这时$b仍然是5可以使用引用操作符&来避免这样的副本。如:$a = 5;$b = &$a;$b = 7; /这时$a和$b都会是7。 这行也可以换成$b = 7;引用是非常有趣的。请记住,引用就像一个别名,而不是一个指针。$a和$b都指向了内存的相同地址。可以通过重置它们来
6、改变所指向的地址。如下所示:unset($a);重置并不会改变$b的值,但是只可以破坏$a和值7保存在内存中的连接。可以搜索: 引用 site: 进一步深入了解PHP的引用。也可以直接访问这个页面:当 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:不会 unset $b,只是 $a。 8、实现中文字串截取无乱码的方法。a.可以用正则b.用mb_substr()参考mb_substr.php北京abc substr9、$a = 1;$x = &$a;$b = $a+;what is $b? $x?参考references2.php10、$arra
7、y = array();$x = empty($array);what is $x? true or false参考 empty.php什么样的内容为空?empty()、isset()、is_null11、用PHP写出显示客户端IP与服务器IP的代码得到服务器端的IP:gethostbyname() 参考gethostbyname.php 有时候得不到。$_SERVERSERVER_ADDR;得到客户端的IP:$_SERVERREMOTE_ADDR;参考ip.php12、某内容管理系统:用户提交内容后,系统生成静态HTML页面;写出实现的基本思路,最好写出相关代码。用户提交内容后,将内容加在最
8、终页面模板上,然后另存为HTML页面(创建HTML页面,将内容和页面模板写入)。代码:$tpl-assign(vars, $vars);$static_html = = $tpl-fetch(tpl/index.html); /Smarty的fetch方法$fp = fopen(html/index.html, w);fwrite($fp, $static_html);13、写出以下程序的输出结果$b=201;$c=40;$a=$b$c?4:5;echo $a;参考3yuan.php14、写出以下程序的输出结果$str=cd;$str=hotdog;$str.=ok;echo $cd;参考$.
9、php15、在PHP中error_reporting这个函数有什么作用?设定php脚本的错误报告级别error_reporting(6143)的作用是设定php脚本的错误报告级别为“所有错误”。ini_set(display_errors, 1); /作用是在显示PHP脚本错误,相当于修改php.ini中的display_errors16、简述如何得到当前执行脚本路径,包括所得到参数。访问echo $_SERVERSCRIPT_URL; /得到/phpinfo.phpecho $_SERVERSCRIPT_URI; /得到 echo $_SERVERSCRIPT_FILENAME; /得到F:
10、/www/Temp/phpinfo.phpecho $_SERVERREQUEST_URI; /得到/phpinfo.php?id=1echo $_SERVERSCRIPT_NAME; /得到/phpinfo.php参考server.php 17、有一个网页地址 ,如何得到它的html内容file_get_contents()18、数组函数 arsort 的作用是_。对数组进行逆向排序并保持索引关系参考arsort.php19、执行程序段将输出_。参考%.php20、语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是_;为了避免多次包含同一文件,可以用语
11、句_来代替它们。发生异常时include产生警告,程序继续执行;require产生致命错误,程序停止往下执行。一般推荐使用require(更能调试错误)。require_once()/include_once()require重复调用会多次加载你饮用的文件;require_once只加载一次,而不管你实际上调用了多少次,主要用于复杂的文件包含关系。例如b包含a,c包含a,但同时c又包含了b,那么如果用require的话可能会导致两次加载a,这时应使用require_once。实际开发过程中:如果确定某个文件只会被包含一次,那么用 require,否则用require_once。因为requir
12、e不需要检测文件是否被包含过,比require_once 的执行效率要高。21、一个函数的参数不能是对变量的引用,除非在php.ini中把_设为on。allow_call_time_pass_reference22、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须_。结束标识符所在的行不能包含任何其它字符除;参考heredoc.php23、有一数组$a=array(3,2,4,9,8);请将其重新排序,按从小到大的顺序列出。可用冒泡法进行排序:冒泡排序的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个
13、数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后,此时第一趟结束,在最后的数必是所有数中的最大数。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。参考array1.php array2.php24、写出session的运行机制。session创建时,是否会在客户端记录一个cookie?cookie里面的内容是什么?session机制是一种服务器端的机
14、制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识-称为sessionid,如果已包含一个sessionid则说明以前已经为此客户端创建过session,服务器就按照sessionid把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含sessionid,则为此客户端创建一个session并且生成一个与此session相关联的sessionid,sessionid的值应该是一个既不会重复,又不容易被找到规律以仿造的字
15、符串,这个sessionid将被在本次响应中返回给客户端保存。保存这个sessionid的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发给服务器。一般这个cookie的名字都是类似于SEEESIONID。由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把sessionid传递回服务器。经常被使用的一种技术叫做URL重写,就是把sessionid直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http:/./xxx;SEEESIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZ
16、cEbzWoWiBYEnLerjQ99zWpBng!- 另一种是作为查询字符串附加在URL后面,表现形式为http:/./xxx?SEEESIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-为了在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个SEEESIONID。 参考:session运行机制:理解session机制:抛开cookie使用session:cookie与session:25、Cookie的原理及使用?Cookie是网站保存在浏览器客户端的信息,也就是说保存在访客的机器里的变量,一般随
17、着HTTP头发送到服务器端。在Cookie生效之后及失效之前,客户每次发出页面请求的时候(包括PHP页面和静态html页面),都会把Cookie一块发送到服务器,只要我们针对它进行相应的处理,就可以实现变量“追随”。 cookie可以跨越子域名。比如我们在下面注册个个cookie,那么可以在上读取到该cookie。session不可以跨越子域名:比如我们在下面注册个个session,那么不可以在,上读取到该session。a 设置一个Cookie变量 设置一个Cookie变量,PHP使用的函数是: int setcookie(string name, string value, int exp
18、ire, string path, string domain, int secure); 其中name是Cookie变量名称标识,你在PHP中将可以象使用普通变量名一样来用它引用Cookie变量。value是Cookie变量的初始值,expire 表示该Cookie变量的有效时间;path 为该Cookie变量的相关路径;domain 表示Cookie变量的网站;secure 则需在 https 的安全传输时才有效。 例如我们要设置一个变量username,它的值是字符串“bluewind”,我们可以这么写代码: setcookie (“username”,“bluewind”); /这两个
19、参数是setcookie必要的。 我们还想给这个变量设置有效时间来限制操作超时等,比如说10分钟: setcookie (“username”,“bluewind”, ); /有效时间的单位是毫秒。 注意:setcookie和header函数一样,需要放在任何能向客户端输出的语句之前。 b 销毁一个变量 销毁Cookie变量只要将它的value设为空(“”)就可以了,如想销毁上面那个变量只要再写一次: setcookie (“username” ,“”); 就可以了。这常用作安全退出之用。 c Cookie的有效范围和生存期 Cookie的有效范围(也就是说在这个范围的页面都能得到这个Cook
20、ie变量)默认的是该目录及其子目录,当然你可以用setcookie的path和domain参数进行修改。如果你不对cookie的expire进行设置(参见1. 设置一个Cookie变量中的例子),那么当你离开网站的页面,cookie也同时得到自动销毁。 cookie 原创者 Netscape 所提供的完整介绍信息。 26、PHP的意思(英文全称、含义)php是Hypertext Preprocessor的缩写,php是一种内嵌HTML的脚本语言。PHP的独特语法混合了c,java和perl及PHP式的新语法。这门语言的的目标是让网页开发人员快速的写出动态的网页。Personal HomePag
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试题 汇总 PHP 程序
限制150内