PHP工程师笔试题汇总
PHP工程师笔试题汇总
腾讯PHP工程师笔试题
1.请对POSIX风格和兼容Perl风格两种正则表达式的主要函数进行类比说明
ereg preg_match
ereg_replace preg_replace
2.请说明在php.ini中safe_mode开启之后对于PHP系统函数的影响
3. PHP5中魔术方法函数有哪几个,请举例说明各自的用法
__sleep
__wakeup
__toString
__set_state
__construct,
__destruct
__call,
__get,
__set,
__isset,
__unset
__sleep,
__wakeup,
__toString,
__set_state,
__clone
__autoload
4.请写出让,并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数?
5. PHP的垃圾收集机制是怎样的
6.使对象可以像数组一样进行foreach循环,要求属性必须是私有。
(Iterator模式的PHP5实现,写一类实现Iterator接口)
7.请写一段PHP代码,确保多个进程同时写入同一个文件成功
8.用PHP实现一个双向队列
9.使用正则表达式提取一段标识语言(html或xml)代码段中指定标签的指定属性值(需考虑属性值对不规则的情况,如大小写不敏感,属性名值与等号间有空格等)。此处假设需提取test标签的attr属性值,请自行构建包含该标签的串
10.请使用socket相关函数(非curl)实现如下功能:构造一个post请求,发送到指定http server的指定端口的指定请求路径(如https://www.360docs.net/doc/a29578749.html,:8080/test)。请求中包含以下变量:
用户名(username):温柔一刀
密码(pwd):&123=321&321=123&
个人简介(intro):Hello world!
且该http server需要以下cookie来进行简单的用户动作跟踪:
cur_query:you&me
last_tm:...(上次请求的unix时间戳,定为当前请求时间前10分钟)
cur_tm:...(当前请求的unix时间戳)
设置超时为10秒,发出请求后,将http server的响应内容输出。
1.
Function encode($data, $sep = ‘&’){
2.
while (list($k,$v) = each($data)) {
3.
$encoded .= ($encoded ? "$sep" : "");
4.
$encoded .= rawurlencode($k)."=".rawurlencode($v);
5.
}
6.
Return $encoded;
7.
}
8.
9.
Function post($url, $post, $cookie){
10.
$url = parse_url($url);
11.
$post = encode($data, ‘&’);
12.
$cookie = encode($cookieArray, ‘;’);
13.
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80, $errno, $errstr, 10);
14.
if (!$fp) return "Failed to open socket to $url[host]";
15.
16.
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
17.
fputs($fp, "Host: $url[host]\n");
18.
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\n");
20.
fputs($fp, "Cookie: $cookie\n\n");
21.
fputs($fp, "Connection: close\n\n");
22.
fputs($fp, "$post \n");
23.
24.
while (!feof($fp)) {
25.
echo fgets($fp, 128);
26.
}
27.
fclose($fp);
28.
}
29.
30.
$url = ‘https://www.360docs.net/doc/a29578749.html,:8080/test’;
31.
$encoded = username=温柔一刀& pwd=
32.
$post = array(
33.
‘username’=> ‘温柔一刀’,
34.
‘pwd => ‘&123=321&321=123&’,
35.
‘intro => ‘Hello world!’
36.
);
$cookie = array(
38.
‘cur_query’ => ‘you&me,
39.
‘last_tm’ => time() - 600,
40.
‘cur_tm ‘=> time()
41.
);
42.
43.
Post($url, $post, $cookie);
复制代码
11.你用什么方法检查PHP脚本的执行效率(通常是脚本执行时间)和数据库SQL的效率(通常是数据库Query时间),并定位和分析脚本执行和数据库查询的瓶颈所在?
1.脚本执行时间,启用xdebug,使用WinCacheGrind分析。
2.数据库查询,mysql使用EXPLAIN分析查询,启用slow query log记录慢查询。
PHP LAMP Engineer Test Paper
Question 1
What does echo count ("123") ?> print out?
A) 3
B) False
C) Null
D) 1
E) 0
Question 2
Which of the following snippets prints a representation of 42 with two decimal places?
A) printf("%.2d\n", 42);
B) printf("%1.2f\n", 42);
C) printf("%1.2u\n", 42);
Question 3
Given
$text = 'Content-Type: text/xml';
Which of the following prints 'text/xml'?
A) print substr($text, strchr($text, ':'));
B) print substr($text, strchr($text, ':') + 1);
C) print substr($text, strpos($text, ':') + 1);
D) print substr($text, strpos($text, ':') + 2);
E) print substr($text, 0, strchr($text, ':')
Question 4
What is the value of $a?
$a = in_array('01', array('1')) == var_dump('01' == 1); ?>
A) True
B) False
Question 5
What is the value of $result in the following PHP code?
function timesTwo($int) {
$int = $int * 2;
}
$int = 2;
$result = timesTwo($int);
?>;
Answer: NULL
Question 6
The code below ___________ because ____________.
class Foo {
?>
function bar() {
print "bar";
}
}
?>
A) will work, class definitions can be split up into multiple PHP blocks.
B) will not work, class definitions must be in a single PHP block.
C) will not work, class definitions must be in a single file but can be in multiple PHP blocks.
D) will work, class definitions can be split up into multiple files and multiple PHP blocks.
Question 7
When turned on, ____________ will _________ your script with different variables from HTML forms and cookies.
A) show_errors, enable
B) show_errors, show
C) register_globals, enhance
D) register_globals, inject
Question 8
What will be the output of the following PHP code:
echo count(strlen("https://www.360docs.net/doc/a29578749.html,"));
?>
Answer: 1
Question 9
What is the best all-purpose way of comparing two strings?
A) Using the strpos function
B) Using the == operator
C) Using strcasecmp()
D) Using strcmp()
Question 10
What is the difference between "print()" and "echo()"?
Answer: print is a function,echo is a language construct
PHP面试题
PHP核心课程测试题一.单选题( 1’ x 50 = 50’ ) 1. PHP是哪一种类型的语言( ) A.编译型 B.解释性 C.两者都是 D.两者都不是 2. 在用浏览器查看网页时出现404错误可能的原因是( ) A.页面源代码错误 B.文件不存在 C.与数据库连接错误 D.权限不足 3. 若x,y为int类型变量,则执行以下语句后,y的值为( ) A.1 B.2 C.3 D.0 4.下列代码执行后,输出结果正确的是( ) A.1 B.2 C.运行错误 D.都不对
5. 执行完以下代码后,变量$num的值为( ) A.10 B.20 C.30 D.显示错误 6. 以下程序运行结果为( ) A.5 + 3 + 1 = 9 B.1 + 5 + 3 =9 C.提示错误,并有显示:+ 3 + 1 = 4 D.9 7. 下面的脚步运行以后,$array数组所包含的值是( ) $v){ $v = 2 } ?> A.arra y (…2?, ?2?) B.array (1, 1) C.array (2, 2) D.array (null,null) 8. 查询名字中第2个字为“阳”的学生的姓名和学号,正确的是( ) A.Select Sname,Sno from student where Sname like ‘_阳%’; B.Select Sname,Sno from student where Sname like ‘阳%’;
PHP试题带答案
一、是非题:(每题1分,共10分) (说明:认为陈述正确的在括号内打“√”;否则在括号内打“×”) 1.PHP 中变量名“$_abc ”不是合法的。( ) 2.PHP 只能使用Mysql 数据库。( ) 3.PHP 中的数组键必须为数字,且从“0”开始。( ) 4.全等运算符“===”在比较时,只有在两者的数据类型和值都相同时才返回True 。( ) 5.“mysql_connect( )”与“@mysql_connect( )”没有任何区别。( ) 6.使用continue 语句可以实现PHP 程序的跳转。( ) 7.HTML 中的Form 表单数据必须使用Submit 按钮才可以提交。( ) 8.PHP 中的die()和exit()都可以实现程序中止退出功能。( ) 9.PHP 程序中可以随时嵌入HTML 代码和JS 代码。( ) 10.PHP 中的Session 功能可以完全不受制于客户端的Cookie 设置。( 二、填空题:(每空1分,共10分) 1.HTML 的Form 表单中定义单选按钮需要使用INPUT 的 类型,定义复选按钮需要使用INPUT 的 类型。 2.PHP 表达式10%值为 ,表达式10/值为 。 3.Mysql 数据库服务默认开放的端口号是 ,默认管理员为 。 4.为了能够避免SQL 注入,你需要坚持 。 5.表达式“'Testing'.'3'+'5'.'12'”的值为 。 6.PHP 函数中可以利用 向外返回一个值,可以使用 声明一个 全局变量。 三、单选题:(每题2分,共30分) (说明:将认为正确答案的字母填写在每小题后而的括号内) 1.
比较基础的php面试题及答案
比较基础的php面试题及答案 填空题:1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER[PHP_SELF]__中;而链接到当前页面的URL记录在预定义变量__$_SERVER[HTTP_REFERER]__中2.执行程序段将输出__0__。3.在HTTP 1.0中,状态码401 的含义是____;如果返回“找不到文件”的提示,则可用header 函数,其语句为____。4.数组函数arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句error_reporting(2047)的作用是__报告所有错误和警告__。5.PEAR中的数据库连接字符串格式是____。6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):preg_replace(“//si”, “newinfo”, $script);7.以Apache 模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php 的文件都作为PHP脚本处理。LoadModule php5_module “c:/php/php5apache2.dll”, AddType application/x-httpd-php .php,8.语句include 和require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句__require_once||include_once__来代替它们。9.类的属性可以序列化后保存到session 中,从而以后可以恢复整个类,这要用到的函数是____。10.一个函数的参数不能是对
PHP中级面试题
姓名:__________ 面试时间:___________ 1、使用过哪些版本控制器 2、使用过哪些框架 3、从上家公司离职的原因 一、基础技能题 1、实现中文字串截取无乱码的方法 2、php5的构造函数和析构函数及具体作用。 3、HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。 4、Include require include_once require_once 的区别 5、请写出0/false/null之间的关系 二、计算题
6、 $count = 5; function get_count() { static $count = 0; return $count++; } ++$count; echo get_count(); echo get_count(); 7、 echo count(null); echo count(false); 8、 $a = 3; $b = 5; if($a = 5 || $b = 7) { $a++; $b++; } echo $a . " " . $b; 9、 function get_arr($arr){ unset($arr[0]); } $arr1 = array(1, 2); $arr2 = array(1, 2); get_arr(&$arr1); get_arr($arr2); echo count($arr1); echo count($arr2); 三、程序编写题
1、使用PHP描述冒泡排序算法,对象可以是一个数组 2、使用PHP描述快速排序算法,对象可以是一个数组 3、如何实现字符串翻转(注* 不可使用内置字符串翻转函数) 四、扩展题 1、请谈谈你对php动态抓取的认识。 2、你做过最得意的项目是什么做这个项目中都遇见了哪些问题后来是怎么解决的 …
PHP试题带答案
评卷人得分分)1分,共10一、是非题:(每题)(说明:认为陈述正确的在括号内打“√”;否则在括号内打“×” )$_abc”不是合法的。(1.PHP中变量名“)数据库。(2.PHP只能使用Mysql)”开始。(3.PHP中的数组键必须为数字,且从“04.全等运算符“===”在比较时,只有在两者的数据类型和值都相同时才返回True。() 5.“mysql_connect( )”与“@mysql_connect( )”没有任何区别。() 6.使用continue语句可以实现PHP程序的跳转。() 7.HTML中的Form表单数据必须使用Submit按钮才可以提交。() 8.PHP中的die()和exit()都可以实现程序中止退出功能。() 9.PHP程序中可以随时嵌入HTML代码和JS代码。() 10.PHP中的Session功能可以完全不受制于客户端的Cookie设置。() 评卷人得分 二、填空题:(每空1分,共10分) 1.HTML的Form表单中定义单选按钮需要使用INPUT的类型,定义复选按钮需要使用INPUT的类型。 2.PHP表达式10%值为,表达式10/值为。 3.Mysql数据库服务默认开放的端口号是,默认管理员为。4.为了能够避免SQL注入,你需要坚持。 5.表达式“”的值为。'Testing'.'3'+'5'.'12'6.PHP 函数中可以利用向外返回一个值,可以使用声明一 个全局变量。 评卷人得分30分)三、单选题:(每题2分,共(说明:将认为正确答案的字母填写在每小题后而的括号内) 1.
PHP笔试题+答案
PHP程序员考题 考试说明: 1、试卷总分为100分。 2、本次考试时间为120分钟。 一、逻辑推理题(9分,每题3分) 1. Jack夫妇请了Tom夫妇和Henrry夫妇来他们家玩扑克。这种扑克游戏有一种规则,夫妇两个不能一组。Jack跟Lily一组,Tom的队友是Henrry的妻子,Linda的丈夫和Sara一组。那么这三对夫妇分别为:(B) A. Jack—Sara,Tom—linda,Henrry—Lily B. Jack—Sara,Tom—Lily,Henrry—linda C. Jack—linda,Tom—Lily,Henrry—Sara D. Jack—Lily,Tom—Sara,Henrry—linda 2. 有17根11.1米长的钢管,要截成1.0米和0.7米的甲、乙两种长度的管子,要求截成的甲、乙两种管子的数量一样多。问:最多能截出甲、乙两种管子各多少根?(C) A. 99 B.105 C. 111 D. 121 3. 一个水库在年降水量不变的情况下,能够维持全市12万人20年得用水量。在该市新迁入3万人之后,该水库只够维持15年得用水量。市政府号召节约用水,希望能将水库的使用寿命提高到30年。那么该市市民平均需要节约多少比例的水才能实现政府制定的目标?(A) A.2/5 B.2/7 C.1/3 D.1/4 二、PHP语言题(36分,每题3分) 1.语句for($k=0;$k=1;$k++);和语句for($k=0;$k==1;$k++);执行的次数分别是(3分): A 无限和0 B 0和无限 C 都是无限 D 都是0 参考答案:A 2.读取post方法传递的表单元素值的方法是(3分): A $_post["名称"] B $_POST["名称"] C $post["名称"] D $POST["名称"] 参考答案:B 3.下面哪个函数可以打开一个文件,以对文件进行读和写操作?(3分) A fget()
php面试题及答案
php面试题及答案,经典php笔试题与答案 问题 1.考虑如下脚本。标记处应该添加什么代码才能让脚本输出字符串 php? $alpha = 'abcdefghijklmnopqrstuvwxyz'; $letters = array(15, 7, 15); foreach($letters as $val) {/* 这里应该加入什么 */ } ?> A.echo chr($val); B.echo asc($val); C.echo substr($alpha, $val, 2); D.echo $alpha{$val}; E.echo $alpha{$val+1} 2.以下哪一项不能把字符串$s1 和$s2 组成一个字符串? A.$s1 + $s2 B.”{$s1}{$s2}” C.$s1.$s2 D.implode(”, array($s1,$s2)) E.以上都可以 3.变量 $email 的值是字符串 user@https://www.360docs.net/doc/a29578749.html, ,以下哪项能把字符串转化成 https://www.360docs.net/doc/a29578749.html,? A.substr($email, strpos($email, “@”));
B.strstr($email, “@”); C.strchr($email, “@”); D.substr($email, strpos($email, “@”)+1); E.strrpos($email, “@”); 4.给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每 个独立的值放入一个新创建的数组? A.strstr() B.不可能只调用一次就完成 C.extract() D.explode() E.strtok() 5.要比较两个字符串,以下那种方法最万能? A.用 strpos 函数 B.用==操作符 C.用 strcasecmp() D.用 strcmp() 6.以下哪个 PCRE 正则表达式能匹配字符串 php|architect? A..* B.…|……… C.\d{3}\|\d{8} D.[az]{3}\|[az]{9} E.[a-z][a-z][a-z]\|\w{9} 7.以下哪些函数能用来验证字符串的完整性?(三选)
php_笔试大全_面试题_答案_解析
php 笔试大全面试题答案解析 2009-09-23 13:31 选择题 1、如何产生带有数字列表符号的列表?(c) A.
- B.
- 印度总理辛格访华专题
-
- 专访辛格:早日解决边界问题是战略目标
- 辛格称北京奥运将为印度举办赛事提供灵感
- 印度总理辛格访华参观北京奥运场馆建设
- C.
- D.
- 2、以下哪条javascript语句会产生运行错误:(A) A. var obj = (); B. var obj = []; C. var obj = {}; D. var obj = //; 3、请选择结果为真的表达式:(c) A. null instanceof Object B. null === undefined C. null == undefined D. NaN == NaN 4、 foo 对象有at属性,那么获取att属性的值,以下哪些做法是可以的:(ACE)--多选 A. foo.att B. foo(“att”) C. foo[“att”] D. foo{“att”} E. foo[“a”+”t”+”t”] 5、如何显示没有下划线的超链接?A A. a {text-decoration:none} B. a {text-decoration:no underline} C. a {underline:none} D. a {decoration:no underline}
6、以下一段XHTML代码片段,它不符合W3C规范,请问出现了几处错误: ( 2)
php面试题及答案,经典php笔试题与答案
问题 1.选择合适的答案填入空白处 PHP 是一种______脚本语言,基于______引擎。PHP 最常被用来开发动态的 ______内 容,此外,它同样还可被用来生成______(以及其他)文档。 A.动态,PHP,数据库,HTML B.嵌入式,Zend,HTML,XML C.基于 Perl 的,PHP,Web,静态 D.嵌入式,Zend,Docbook 文档,MySQL E.基于 Zend 的,PHP,图像,HTML 1.唯一有意义的答案是 B。PHP 是一种基于 Zend 引擎的脚本语言,它通常被嵌入在 HTML 代码中。它主要被用来开发 HTML 文档,但是也可以用它来开发其他类型的文档,比 如 XML。 2.以下哪种标签不是 PHP 起始/结束符? A.<% %> B.// C. D./* */ E.
2. PHP 编程中,人们不太使用<% %>和两个标签,但它们确实是合法的 PHP 界定符。 标签是非法的,因此正确的答案是 D。记住,根据 php.ini 文件中的配置不同,这 当中的某些标签无法在特定的情况下使用。 3.以下代码哪个不符合 PHP 语法? A.$_10 B.${“MyVar”} C.&$something D.$10_somethings E.$aVaR 3. PHP 变量以一个美元符号为开头,后面跟上任意数量的数字、字母和下划线。${“MyVar”} 是一个合法的变量名,它使用的是较松散的命名约定。&$something 是对$something 的 引用。然而,变量名不能以数字为开头,$10_somethings 是非法的,因此答案是 D。 4.运行以下代码将显示什么? define(myvalue, "10"); $myarray[10] = "Dog"; $myarray[] = "Human"; $myarray['myvalue'] = "Cat"; $myarray["Dog"] = "Cat";
php期末考试试题
《PHP程序设计》上机期末考试试题 一、调试下列各小题的输入结果(每题10分,共34分) 1、 } $table .= "
"; unset($arr[5]); print_r($arr); echo “
”; unset($arr); print_r($arr); > 调试答案:____________________________. 4、
"; > 调试答案:____________________________. 5、"; for($j=1;$j<=$n;$j++){ $table .= " "; } $table .= ""; echo $table; > 调试答案:____________________________. 6、m:$i, n:$j ";
"; gzclose($id);$id=gzopen("","w"); gzputs($id,"
"; gzpassthru($id); echo "
"; gzclose($id); > 调试答案:____________________________. 二、编程题及程序调试(每题20分共计40分) 1、有一个数组$a=array(4,3,8,9,2),将其重新排序并输入结果,按从小到大的顺序排列。 1、
最全最详细的PHP面试题(带有答案)
1 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:21(2分)**************** 答:echo date('Y-m-d H:i:s', strtotime('-1 days')); 2、echo(),print(),print_r()的区别(3分) 答:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串 3、能够使HTML和PHP分离开使用的模板(1分) 答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate 5、使用哪些工具进行版本控制?(1分) 答:cvs,svn,vss; 6、如何实现字符串翻转?(3分) 答:echo strrev($a); 7、优化MYSQL数据库的方法。(4分,多写多得) 答: 1、选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL,例如'省份,性别',最好设置为ENUM 2、使用连接(JOIN)来代替子查询: 3、使用联合(UNION)来代替手动创建的临时表 4、事务处理:
PHP 面试笔试题--选择题部分
1.以下哪种类型是B/S构架的正确描述?(C) A. 需要安装客户端的软件 B. 不需要安装就可以使用的软件 C. 依托浏览器的网络系统 D. 依托outlook等软件的邮件系统? 2.PHP中,单引号和双引号所包围的字符串有什么区别?(AD)(选择两项) A. 单引号速度快,双引号速度慢 B. 双引号速度快,单引号速度慢 C. 两者没有速度差别 D. 双引号解析其中以$开头的变量,而单引号不解析 3.下面哪个不是合法的SQL的归类函数?(E) A. AVG B. SUM C. MIN D. MAX E. CURRENT_DATE() 4.若y , x为int型变量,则执行以下语句后,y的值为(B) x=1; ++x; y = x++; A、1 B、2 C、3 D、0 5.以下代码执行结果为:(A) $num=”24linux”+6; echo $num; ?> A 30 B 24linux6 C 6 D 30linux 6.PHP是一种什么型的语言:(C) A、编译型 B、解释型 C、两者都是 D、两者都不是 7.下列描述正确的是(B) A、JavaScript是一种编译型语言 B、JavaScript是一种基于对象和事件驱动的编程语言 C、JavaScript中变量声明采用强定义类型 D、JavaScript采用静态联编 8.要想在网页中输出”<”正确的方法是(B) A: & B: < C: > D: ” 9.创建一个滚动菜单的HTML代码是?(D) A.
B. C.