阅读:1718回复:0
PHP面试题汇总一
问题:如何设置一个严格的session过期时间,例如30分钟
回答: 1. 设置Cookie过期时间30分钟, 并设置Session的lifetime也为30分钟. 2. 自己为每一个Session值增加时间戳(Time stamp). 3. 每次访问之前, 判断时间戳(Time stamp). $timeout = 30*60; session_start(); if(!isset($_SESSION['sessionTime'])){ $_SESSION['sessionTime'] = time() + $timeout; }else{ if($_SESSION['sessionTime'] < time()){ session_destroy(); } $_SESSION['sessionTime'] = time() + $timeout; } 问题:公司服务器上有个100M 大小的日志文件,想用正则匹配出有用的内容, 用贪婪模式和非贪婪模式都可以,哪种效率高,为什么?” 回答:贪婪模式用于不管是否有结果都会一直执行,而非贪婪模式则会找到结果就返回,不再执行后续查询,如果文件中匹配很多,那么使用贪婪模式是最全面的,如果只要找到文件里唯一一个匹配的内容使用非贪婪模式最快,针对于效率而言,是看需求以及匹配。 .* .*? 需求不一样,结果不一样。 问题:有如下字符串,如何提取其中的数字? 字符串是 : ‘Hello 123 world 456 !!’ , 期望提取出来的数字是 123456 。 回答:echo preg_replace('/[^d]/','','Hello 123 world 456 !!'); 问题:两个变量a和b,进行数据交换的方法 回答: 方法一, $a ^= $b; $b ^= $a; $a ^= $b; 方法二 list($b,$a) = array($a,$b); 方法三 $a = $a+$b; $b = $a-$b; $a = $a=$b; 问题: $a = count ("sijiaomao") + count(null) + count(false); echo $a; 回答: int count ( mixed var [, int mode] ) 返回 var 中的单元数目,通常是一个 array,任何其它类型都只有一个单元。 如果 var 不是数组类型或者实现了 Countable 接口的对象,将返回 1,有一个例外,如果 var 是 NULL 则结果是 0。 所以是 2 |
|