【php精品源码栏目提醒】:网学会员为广大网友收集整理了,【精品】php面试题及答案 - 其它资料,希望对大家有所帮助!
基础题:1.表单中 get 与 post 提交方法的区别答:get 是发送请求 HTTP 协议通过 url 参数传递进行接收而 post 是实体数据可以通过表单提交大量信息.2.session 与 cookie 的区别答:session:储存用户访问的全局唯一变量存储在服务器上的
php 指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续访问一个页面时所使用,是存储在客户端,对于 Cookie来说是存储在用户 WIN 的 Temp 目录中的。
两者都可通过时间来设置时间长短3.数据库中的事务是什么答:事务(transaction)是作为一个单元的一组有序的数据库操作。
如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。
如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。
如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。
简述题:1、用
PHP 打印出前一天的时间格式是 2006-5-10 22:21:212 分答:echo dateY-m-d H:i:s strtotime-1 days2、echoprintprint_r的区别3 分答:echo 是
PHP 语句 print 和 print_r 是函数语句没有返回值函数可以有返回值即便没有用 print() 只能打印出简单类型变量的值如 intstring print_r() 可以打印出复杂类型变量的值如数组对象 echo 输出一个或者多个字符串3、能够使 HTML 和
PHP 分离开使用的模板1 分答:SmartyDwooTinyButStrongTemplate LiteSavantphemplateXTemplate5、使用哪些工具进行版本控制1 分答:cvssvnvss6、如何实现字符串翻转3 分答:echo strreva7、优化 MYSQL 数据库的方法。
4 分,多写多得答:1、选取最适用的字段属性尽可能减少定义字段长度尽量把字段设置 NOT NULL例如省份性别最好设置为 ENUM2、使用连接(JOIN)来代替子查询: a.删除没有任何订单客户:DELETE FROM customerinfo WHERE customerid NOTinSELECT customerid FROM orderinfo b.提取所有没有订单客户:SELECT FROM customerinfo WHERE customerid NOTinSELECT customerid FROM orderinfo c.提高 b 的速度优化:SELECT FROM customerinfo LEFT JOIN orderidcustomerinfo.customeridorderinfo.customerid WHERE orderinfo.customerid IS NULL3、使用联合UNION来代替手动创建的临时表 a.创建临时表:SELECT name FROM nametest UNION SELECT username FROMnametest24、事务处理: a.保证数据完整性例如添加和修改同时两者成立则都执行一者失败都失败 mysql_queryquotBEGINquot mysql_queryquotINSERT INTO customerinfo name VALUES name1quot mysql_queryquotSELECT FROM orderinfo where customeridquot.idquot mysql_queryquotCOMMITquot5、锁定表优化事务处理: a.我们用一个 SELECT 语句取出初始数据,通过一些计算,用 UPDATE 语句将新值更新到表中。
包含有 WRITE 关键字的 LOCK TABLE 语句可以保证在 UNLOCK TABLES 命令被执行之前, 不会有其它的访问来对 inventory 进行插入、更新或者删除的操作 mysql_queryquotLOCK TABLE customerinfo READ orderinfo WRITEquot mysql_queryquotSELECT customerid FROM customerinfo where idquot.id mysql_queryquotUPDATE orderinfo SET ordertitletitle wherecustomeridquot.id mysql_queryquotUNLOCK TABLESquot6、使用外键优化锁定表 a.把 customerinfo 里的 customerid 映射到 orderinfo 里的 customerid 任何一条没有合法的 customerid 的记录不会写到 orderinfo 里 CREATE TABLE customerinfo customerid INT NOT NULL PRIMARY KEYcustomerid TYPE INNODB CREATE TABLE orderinfo orderid INT NOT NULL customerid INT NOT NULL PRIMARY KEYcustomeridorderid FOREIGN KEY customerid REFERENCES customerinfo customerid ON DELETE CASCADE TYPE INNODB 注意:ON DELETE CASCADE该参数保证当 customerinfo 表中的一条记录删除的话同时也会删除 order 表中的该用户的所有记录注意使用外键要定义事务安全类型为INNODB7、建立索引: a.格式: 普通索引-gt 创建:CREATE INDEX lt索引名gt ON tablename 索引字段 修改:ALTER TABLE tablename ADD INDEX 索引名 索引字段 创表指定索引:CREATE TABLE tablename...INDEX索引名索引字段 唯一索引-gt 创建:CREATE UNIQUE lt索引名gt ON tablename 索引字段 修改:ALTER TABLE tablename ADD UNIQUE 索引名 索引字段 创表指定索引:CREATE TABLE tablename...UNIQUE索引名索引字段 主键-gt 它是唯一索引一般在创建表是建立格式为: CREATA TABLE tablename ...PRIMARY KEY索引字段8、优化查询语句 a.最好在相同字段进行比较操作在建立好的索引字段上尽量减少函数操作 例子 1: SELECT FROM order WHERE YEARorderDatelt2008慢 SELECT FROM order WHERE orderDateltquot2008-01-01quot快 例子 2: SELECT FROM order WHERE addtime/7lt24慢 SELECT FROM order WHERE addtimelt247快 例子 3: SELECT FROM order WHERE title like quotgoodquot SELECT FROM order WHERE titlegtquotgoodquot and nameltquotgoodquot8、
PHP 的意思送 1 分答:
PHP 是一个基于服务端来创建动态网站的脚本语言,您可以用
PHP 和 HTML 生成网站主页9、MYSQL 取得当前时间的函数是,格式化日期的函数是2 分答:nowdate10、实现中文字串截取无乱码的方法。
3 分答:function GBsubstrstring start length ifstrlenstringgtlength strnull lenstartlength foristartiltleni ifordsubstrstringi1gt0xa0 str.substrstringi2 i else str.substrstringi1 return str.... else return string 11、您是否用过版本控制软件 如果有您用的版本控制软件的名字是1 分12、您是否用过模板引擎 如果有您用的模板引擎的名字是1 分答:用过smarty13、请简单阐述您最得意的开发之作4 分答:信息分类14、对于大流量的网站您采用什么样的方法来解决访问量问题4 分答:确认服务器硬件是否足够支持当前的流量数据库读写分离优化数据表 程序功能规则禁止外部的盗链控制大文件的下载使用不同主机分流主要流量15、用
PHP 写出显示客户端 IP 与服务器 IP 的代码 1 分答:打印客户端 IP:echo _SERVER‘REMOTE_ADDR’ 或者:getenvREMOTE_ADDR 打印服务器 IP:echo gethostbynamequotwww.bolaiwu.comquot 语16、 句 include 和 require 的区别是什么为避免多次包含同一文件,可用语句代替它们 2 分答:require-gtrequire 是无条件包含也就是如果一个流程里加入 require无论条件成立与否都会先执行 require include-gtinclude 有返回值,而 require 没有可能因为如此 require 的速度比 include 快 注意:包含文件不存在或者语法错误的时候 require 是致命的include 不是17、如何修改 SESSION 的生存时间1 分.答:方法 1:将
php.ini 中的 session.gc_maxlifetime 设置为 9999 重启 apache 方法 2:savePath quot./session_save_dir/quot lifeTime 小时 秒 session_save_pathsavePath session_set_cookie_paramslifeTime session_start 方法 3:setcookie and session_set_cookie_paramslifeTime18、有一个网页地址 比如
PHP 开发资源网主页:http://www.phpres.com/index.html如何得到它的内容1 分答:方法 1对于
PHP5 及更高版本: readcontents fopenquothttp://www.phpres.com/index.htmlquot quotrbquot contents stream_get_contentsreadcontents fclosereadcontents echo contents 方法 2: echo file_get_contentsquothttp://www.phpres.com/index.htmlquot19、在 HTTP 1.0 中,状态码 401 的含义是如果返回“找不到文件”的提示,则可用 header 函数,其语句为2 分答:状态 401 代表未被授权headerquotLocation:www.xxx.phpquot12、在
PHP 中,heredoc 是一种特殊的字符串,它的结束标志必须1 分答:heredoc 的语法是用quotltltltquot加上自己定义成对的标签,在标签范围内的文字视为一个字符串 例子: str ltltltSHOW my name is Jiang Qihui SHOW13、谈谈 aspphpjsp 的优缺点1 分答:ASP 全名 Active Server Pages,是一个 WEB 服务器端的开发环境, 利用它可以产生和运行动态的、交互的、高性能的 WEB 服务应用程序。
ASP 采用脚本语言 VB Script(Java script)作为自己的开发语言。
PHP 是一种跨平台的服务器端的嵌入式脚本语言. 它大量地借用 CJava 和Perl 语言的语法 并耦合
PHP 自己的特性使 WEB 开发者能够快速地写出动态生成页面.它支持目前绝大多数数据库。
还有一点,
PHP 是完全免费的,不用花钱,你可以从
PHP 官方站点http://www.
php.net自由下载。
而且你可以不受限制地获得
源码, 甚至可以从中加进你自己需要的特色。
JSP 是 Sun 公司推出的新一代站点开发语言,他完全解决了目前 ASPPHP的一个通病--脚本级执行(据说
PHP4 也已经在 Zend 的支持下,实现编译运行).Sun 公司借助自己在 Java 上的不凡造诣,将 Java 从 Java 应用程序 和 Java Applet 之外,又有新的硕果,就是 Jsp--Java Server Page。
Jsp 可以在 Serverlet 和 JavaBean 的支持下,完成功能强大的站点程序。
三者都提供在 HTML 代码中混合某种程序代码、 由语言引擎解释执行程序代码的能力。
但 JSP 代码被编译成 Servlet 并由 Java 虚拟机解释执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。
在 ASP 、
PHP、JSP 环境下, HTML 代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。
普通的 HTML 页面只依赖于 Web 服务器,而 ASP 、
PHP、JSP 页面需要附加的语言引擎分析和执行程序代码。
程序代码的执行结果被重新嵌入到HTML 代码中,然后一起发送给浏览器。
ASP 、
PHP、 JSP 三者都是面向 Web 服务器的技术,客户端浏览器不需要任何附加的软件支持。
14、谈谈对 mvc 的认识1 分答:由模型model视图view控制器controller完成的应用程序 由模型发出要实现的功能到控制器控制器接收组织功能传递给视图15、写出发贴数最多的十个人名字的 SQL,利用下表:membersidusernamepostspassemail2 分答:SELECT FROM members ORDER BY posts DESC limit 01016. 请说明
php 中传值与传引用的区别。
什么时候传值什么时候传引用2 分答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,
php 必须复制值。
特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。
按引用传递则不需要复制值,对于性能提高很有好处。
17. 在
PHP 中 error_reporting 这个函数有什么作用 1 分答:设置错误级别与错误信息回报18. 请写一个函数验证电子邮件的格式是否正确 2 分答:function checkEmailemail pregEmail quot/a-z0-9-_/.a-z0-9a-z0-9-_a-z0-9/.a-z23/.a-z2/iquot return preg_matchpregEmailemail 19. 简述如何得到当前执行脚本路径,包括所得到参数。
2 分答:script_name basename__file__ print_rscript_name21、JS 表单弹出对话框函数是获得输入焦点函数是 2 分答:弹出对话框: alertpromptconfirm 获得输入焦点 focus22、JS 的转向函数是怎么引入一个外部 JS 文件2 分答:window.location.hrefltscript typequottext/javascriptquotsrcquotjs/js_function.jsquotgtlt/scriptgt23、foo和foo之间有什么区别1 分答:foo控制错误输出24、如何声明一个名为”myclass”的没有方法和属性的类 1 分答:class myclass 25、如何实例化一个名为”myclass”的对象1 分答:new myclass26、你如何访问和设置一个类的属性 2 分答:object new myclass newstr object-gttest object-gttest quotinfoquot27、mysql_fetch_row 和 mysql_fetch_array 之间有什么区别 1 分答:mysql_fetch_row 是从结果集取出 1 行数组作为枚举 mysql_fetch_array 是从结果集取出一行数组作为关联数组或数字数组两者兼得28、GD 库是做什么用的 1 分 使答:gd 库提供了一系列用来处理图片的 API, 用 GD 库可以处理图片,或者生成图片。
在网站上 GD 库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
29、指出一些在
PHP 输入一段 HTML 代码的办法。
1 分答:echo quotlta hrefindex.phpgtaaalt/agtquot30、下面哪个函数可以打开一个文件,以对文件进行读和写操作1 分 a fget b file_open c fopen d open_file c 31、下面哪个选项没有将 john 添加到 users 数组中 1 分 a users ‘john’ b array_addusers’john’ c array_pushusers‘john’ d users ‘john’ a c 32、下面的程序会输入是否1 分 num 10 function multiply num num 10 multiply echo num gt 输出:1033、使用
php 写一段简单查询,查出所有姓名为“张三”的内容并打印出来 2分 表名 User Name Tel Content Date 张三 大专毕业 2006-10-11 张三 本科毕业 2006-10-15 张四 021-55665566 中专毕业 2006-10-15 请根据上面的题目完成代码: mysql_dbmysql_connectquotlocalquotquotrootquotquotpassquot mysql_select_dbquotDBquotmysql_db result mysql_queryquotSELECT FROM user WHERE name张三quot whilers mysql_fetch_arrayresult echo rsquottelquot.rsquotcontentquot.rsquotdatequot 34、如何使用下面的类并解释下面什么意思3 class test function Get_testnum nummd5md5num.quotEnquot return num 答:testnum quot123quot object new test encrypt object-gtGet_testtestnum echo encrypt 类 test 里面包含 Get_test 方法实例化类调用方法多字符串加密35、写出 SQL 语句的格式 : 插入 ,更新 ,删除 4 分 表名 User Name Tel Content Date 张三 大专毕业 2006-10-11 张三 本科毕业 2006-10-15 张四 021-55665566 中专毕业 2006-10-15 a 有一新记录小王 高中毕业 2007-05-06请用 SQL 语句新增至表中 mysql_queryquotINSERT INTO user nametelcontentdate VALUES 小王高中毕业2007-05-06quot b 请用 sql 语句把张三的时间更新成为当前系统时间 nowDate datequotYmdquot mysql_queryquotUPDATE user SET datequot.nowDate.quot WHERE name张山quot c 请写出删除名为张四的全部记录 mysql_queryquotDELETE FROM user WHERE name张四quot36、请写出数据类型int char varchar datetime text的意思 请问 varchar和 char 有什么区别2 分答:int 是数字类型char 固定长度字符串varchar 实际长度字符串datetime日期时间型text 文本字符串 char 的场地固定为创建表设置的长度varchar 为可变长度的字符38、写出以下程序的输出结果 1 分 b201 c40 abgtc4:5 echo a gt答:439、检测一个变量是否有设置的函数是否是否为空的函数是2 分答:issetstremptystr40、取得查询结果集总数的函数是1 分答:mysql_num_rowsresult41、arr arrayjames tom symfony 请打印出第一个元素的值 1分答:echo array042、请将 41 题的数组的值用号分隔并合并成字串输出1 分答:fori0iltcountarrayi echo arrayi.quotquot43、a abcdef 请取出a 的值并打印出第一个字母1 分答:echo a0 或 echo substra0144、
PHP 可以和 sql server/oracle 等数据库连接吗1 分答:当然可以45、请写出
PHP5 权限控制修饰符3 分答:public公共private私用protected继承46、请写出
php5 的构造函数和析构函数2 分答:__construct __destruct47、完成以下: 一创建新闻发布系统,表名为 message 有如下字段 3 分 id 文章 id title 文章标题 content 文章内容 category_id 文章分类 id hits 点击量答:CREATE TABLE message id int10 NOT NULL auto_increment title varchar200 default NULL content text category_id int10 NOT NULL hits int20 PRIMARY KEYid ENGINEInnoDB DEFAULT CHARSETutf8 二同样上述新闻发布系统:表 comment 记录用户回复内容,字段如下 4分 comment_id 回复 id id 文章 id,关联 message 表中的 id comment_content 回复内容 现通过查询数据库需要得到以下格式的文章标题列表并按照回复数量排序,回复最高的排在最前面 文章 id 文章标题 点击量 回复数量 用一个 SQL 语句完成上述查询,如果文章没有回复则回复数量显示为 0答:SELECT message.id idmessage.title titleIFmessage.hits ISNULL0message.hits hits IFcomment.id is NULL0count number FROM message LEFT JOIN comment ON message.idcomment.id GROUP BY message.id 三上述内容管理系统,表 category 保存分类信息,字段如下 3 分 category_id int4 not null auto_increment categroy_name varchar40 not null 用户输入文章时,通过选择下拉菜单选定文章分类 写出如何实现这个下拉菜单答:function categoryList resultmysql_queryquotselect category_idcategroy_name fromcategoryquot or diequotInvalid query: quot . mysql_error printquotltselect namecategory valuegt/nquot whilerowArraymysql_fetch_arrayresult printquotltoptionvaluequot.rowArraycategory_id.quotgtquot.rowArraycategroy_name.quotlt/optiongt/nquot printquotlt/selectgtquot编程题:1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名 例如: http://www.sina.com.cn/abc/de/fg.phpid1 需要取出
php或 .
php答案 1: function getExturl arr parse_urlurl file basenamearrpath ext explodequot.quotfile return ext1答案 2: function getExturl url basenameurl pos1 strposurlquot.quot pos2 strposurlquotquot ifstrstrurlquotquot return substrurlpos1 1pos2 - pos1 - 1 else return substrurlpos1 2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句 请使用
PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5 请注意: 1. 需要处理完整的 html 页面,即不光此 meta 语句 2. 忽略大小写 3. 和 quot 在此处是可以互换的 4. Content-Type 两侧的引号是可以忽略的,但 text/htmlcharsetgbk.