资源描述
公司面试题之 腾讯PHP工程师笔试题
1. 请对pOSIX风格和兼容perl风格两种正那么表达式的主要函数进行类比说明
ereg pregmatch
eregreplace pregreplace
2. 请说明在php.ini中safemode开启之后对于pHp系统函数的影响
3. pHp5中魔术方法函数有哪几个,请举例说明各自的用法
sleep
wakeup
toString
setstate
construct,
destruct
call,
get,
set,
isset,
unset
sleep,
wakeup,
toString,
setstate,
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请求,发送到指定 server的指定端口的指定请求路径。请求中包含以下变量:
用户名(username):温柔一刀
密码(pwd):&123=321&321=123&
个人简介(intro):Hello world!
且该 server需要以下cookie来进行简单的用户动作跟踪:
curquery:you&me
lasttm:...(上次请求的unix时间戳,定为当前请求时间前10分钟)
curtm:...(当前请求的unix时间戳)
设置超时为10秒,发出请求后,将 server的响应内容输出。复制内容到剪贴板代码:Function encode($data, $sep = ‘&’){
while (list($k,$v) = each($data)) {
$encoded .= ($encoded ? "$sep" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
Return $encoded;
}
Function post($url, $post, $cookie){
$url = parseurl($url);
$post = encode($data, ‘&’);
$cookie = encode($cookieArray, ‘;’);
$fp = fsockopen($url[host], $url[port] ? $url[port] : 80, $errno, $errstr, 10);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("pOST %s%s%s HTTp/1.0\n", $url[path], $url[query] ? "?" : "", $url[query]));
fputs($fp, "Host: $url[host]\n");
fputs($fp, "Content-type: application/x--form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\n");
fputs($fp, "Cookie: $cookie\n\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$post \n");
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
$url = ‘s://.example.:8080/test’;
$encoded = username=温柔一刀& pwd=
$post = array(
‘username’=> ‘温柔一刀’,
‘pwd => ‘&123=321&321=123&’,
‘intro => ‘Hello world!’
);
$cookie = array(
‘curquery’ => ‘you&me,
‘lasttm’ => time() - 600,
‘curtm ‘=> time()
);
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 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 ext/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 = inarray(1, array(1)) == vardump(1 == 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) showerrors, enable
B) showerrors, show
C) registerglobals, enhance
D) registerglobals, inject
Question 8
What will be the output of the following pHp code:
echo count(strlen("s://php."));
?>
Answer: 1
Question 9
What is the best all-purpose way of paring 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
展开阅读全文