您的位置:首页 > 职场人生

PHP面试题总结

2014-08-11 10:27 225 查看
1. 禁用COOKIE 后 SEESION 还能用吗?

cookie是保存在本地的,而seesion是保存在服务器上的。所以两者没有直接的关系,禁用cookie后seesion依然可以用。

2. 抓取远程图片到本地,你会用什么函数?

用file_get_contents函数,ex:

<?php

$img = file_get_contents('http://www.baidu.com/img/baidu_logo.gif');

file_put_contents('1.gif',$img);

echo '<img src="1.gif">';

?>

3.在HTTP 1.1中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(5)。

答:(4)未授权 (5) header("HTTP/1.1 404 Not Found");

4.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

答:$sql = 'SELECT CASE WHEN A>B THEN A ELSE B END,

case when B>C then B else C end From tomener';

5.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

答:(10) LoadModule php5_module F:/php5/php5apache2.ddl

(11) AddType application/x-httpd-php .php

6.优化MYSQL数据库的方法

(1)选取最适用的字段类型

(2)使用连接(JOIN)来代替子查询(Sub-Queries)

(3)使用联合(UNION)来代替手动创建的临时表

(4)使用索引,增加查询效率

(5)根据sql语句和索引来跳转sql语句和索引,以达到最优的查询

(6)优化查询语句,提高索引命中率

(7)构造分库分表,提高数据库的存储和扩展能力

(8)根据需要使用不同的存储引擎

 7.写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名

  例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

$url = "http://www.sina.com.cn/abc/de/fg.php?id=1";

$arr = parse_url($url);

$pathArr = pathinfo($arr['path']);

print_r($pathArr['extension']);

  8.写一个函数,算出两个文件的相对路径

  如 $a = '/a/b/c/d/e.php';

  $b = '/a/b/12/34/c.php';

计算出 $b 相对于 $a 的相对路径应该是 http://www.cnblogs.com/12/34/c.php将添上

$a = '/a/b/c/d/e.php';

$b = '/a/b/12/34/c.php';

//获取path相对于conpath的相对路径

function sGetRelativePath($path, $conpath)

{

$pathArr = explode("/", $path);

$conpathArr = explode("/", $conpath);

$dismatchlen = 0;

for($i = 0; $i < count($pathArr); $i++)

{

if($conpathArr[$i] != $pathArr[$i])

{

$dismatchlen = count($pathArr) - $i;

$arrLeft = array_slice($pathArr, $i);

break;

}

}

$ret = str_repeat("../", $dismatchlen).implode("/", $arrLeft);

return $ret;

}

print_r(sGetRelativePath($b, $a));

9.写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?

答:

1、Int 整形

2、Char字符型

3、Varchar 可变长度字符型

4、Datetime 时间日期内省

5、Text 文本类型

6、Varchar 是可变长度类型,占用的空间是字符串的长度+1,而char是固定长度字符串类型,定义了多少空间就占用多少空间。

10.请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?

答:

1、Int 整形

2、Char字符型

3、Varchar 可变长度字符型

4、Datetime 时间日期内省

5、Text 文本类型

6、Varchar 是可变长度类型,占用的空间是字符串的长度+1,而char是固定长度字符串类型,定义了多少空间就占用多少空间。

.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。

答:(6)对数组进行逆向排序并保持索引关系 (7)All errors and warnings

11.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把标记及其内容都去掉):(9)。

答:/<[^>].*?>.*?<\/>/si

12.请举例说明在你的开发过程中用什么方法来加快页面的加载速度

A.生成静态HTML

B.生成xml

C.可不用数据库的尽量不用数据库把变量参数存于文本.

D.用ZEND加速

13.PHP中传值和传引用、传地址的区别是什么?

答:传值是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值

传地址 是传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象

14.如何通过javascript判断一个窗口是否已经被屏蔽

答:获取open()的返回值,如果是null,就是屏蔽了

15.PHP遍历文件夹及子文件夹所有文件

<?php

function traverse($path = '.') {

$current_dir = opendir($path); //opendir()返回一个目录句柄,失败返回false

while(($file = readdir($current_dir)) !== false) { //readdir()返回打开目录句柄中的一个条目

$sub_dir = $path . DIRECTORY_SEPARATOR . $file; //构建子目录路径

if($file == '.' || $file == '..') {

continue;

} else if(is_dir($sub_dir)) { //如果是目录,进行递归

echo 'Directory ' . $file . ':<br>';

traverse($sub_dir);

} else { //如果是文件,直接输出

echo 'File in Directory ' . $path . ': ' . $file . '<br>';

}

}

}

traverse("E:\www\happylou");

?>

16,将1234567890转换成1,234,567,890 每3位用逗号隔开的形式

echo number_format('1234567890',2);

17,语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。

答:(12) 发生异常时include产生警告require产生致命错误 (13) require_once()/include_once()

18,使用五种以上方式获取一个文件的扩展名

要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,

答:使用五种以上方式获取一个文件的扩展名

1)get_ext1($file_name){

return strrchr($file_name, '.');

}

2)get_ext2($file_name){

return substr($file_name, strrpos($file_name, '.'));

}

3)get_ext3($file_name){

return array_pop(explode('.', $file_name));

}

4)get_ext4($file_name){

$p = pathinfo($file_name);

return $p['extension'];

}

5)get_ext5($file_name){

return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: