php面试题 - 腾讯内部

更新时间:2023-10-22 02:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

公司面试题之:腾讯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的指定端口的指定请求路径(如http://www.example.com: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的响应内容输出。

复制内容到剪贴板

代码: Function encode($data, $sep = ‘&’){

while (list($k,$v) = each($data)) { $encoded .= ($encoded ? \

$encoded .= rawurlencode($k).\}

Return $encoded; }

Function post($url, $post, $cookie){ $url = parse_url($url); $post = encode($data, ‘&’);

$cookie = encode($cookieArray, ‘;’);

$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80, $errno, $errstr, 10);

if (!$fp) return \

fputs($fp,

sprintf(\

%s%s%s

HTTP/1.0\\n\

$url['path'],

$url['query'] ? \fputs($fp, \

fputs($fp, \fputs($fp, \fputs($fp, \fputs($fp, \fputs($fp, \

while (!feof($fp)) { echo fgets($fp, 128); }

fclose($fp); }

$url = ‘[url]http://www.example.com:8080/test[/url]’; $encoded = username=温柔一刀& pwd= $post = array(

‘username’=> ‘温柔一刀’, ‘pwd => ‘&123=321&321=123&’, ‘intro => ‘Hello world!’

);

$cookie = array(

‘cur_query’ => ‘you&me, ‘last_tm’ => time() - 600, ‘cur_tm ‘=> 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

Question 2

Which of the following snippets prints a representation of 42 with two decimal places? A) printf(\ B) printf(\ C) printf(\

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 ____________.

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

本文来源:https://www.bwwdw.com/article/6n7f.html

Top