一、PHP部分:
1. 写一个 函数,array_remove(),要求最简洁的清除 数组中值为$v的项。
2. 以下登陆代码安全上有什么问题?
$m=$_GET['m'];
$user=$_GET['user'];
$pass=$_GET['pass'];
$include($m.”do/php”);
$sql=”select count(*) as b from user where username=’”.$user.”‘and password=’”.$pass.”‘;
$r=mysql_query()($sql);
list($count)=@mysql_fetch_array($r);
if($count>1){
……登陆成功操作
}
?>
3. 写一个程序,远程抓取http://www./search?q=php网页内容,并匹配出该网址网页内的所有超链接地址,写入url.txt
二、mysql部分:
1. 如何检验sql语句的效率索引使用情况?
js部分:
如何当age的值填入18的时候,form的action变更为?do=login_bak?
服务器部分:
1. 查看当前服务器负载命令是?
2. 如何查看当前服务器1111端口的链接总数是?
3. 如何列出当前进程里有多少包含apache名字的进程?
其他:
要做一套图片管理系统。关于用户图片的上传。
如何尽量避免1,图片被盗用。2,图片重复上传。
图片上传保存目录如何设置的? 会用正则表达式匹配图片地址吗?
三、副题部分:
1. include和require有什么区别?
区别在于他们如何处理失败, 如果require的文件没有找到, 会造成fatal error,脚本停止执行,如果include的文件没有找到, 会显示警告,但是脚本会继续执行。
2. 给一个变量赋值为0123,但是输出该变量的值总是为其他数字,请问这是什么问题?
PHP 解释器会把以0开始的数字当做是八进制的,所以它的值会变成八进制的。
3. PHP里面如何定义一个常量(constant)?
通过define()指令,例如:define(”MYCONSTANT”, 100)
4. 如何对一个变量进行值传递?
可以像C++那样, 在变量的前面加上&, 例如:$a = &$b
5. 在PHP里面可以对string “10″ 和整型 11进行比较吗?
可以,PHP内部实现会把所有东西转换成整型,所以数字10和11可以进行比较
6. 在什么情况下需要用endif 来结束条件语句?
当if语句后面跟的是冒号”:”而不是大括号{时,需要用endif来结束条件语句
本php面试题分为选择题、填空题、判断题与问答题四个部分,大家好好研究下吧。
一、选择题
1.php的源代码是 (A )
A.开放的 B.封闭的 C.需购买的 D.完全不可见的
2.php的输出语句是 ( C )
A.out.print B.response.write C.echo D. scanf
3.php的中标量类型中整型类型的英文单词是 (C )
A.boolean B.string C.integer D.float
4.php的转义字符“反斜杠”是 ( D )
A.\n B.\r C.\t D.\\
5.php遍历数组使用的是 ( B )
A.print B.forecah C.echo D. scanf
6.php的变量在声明和使用的时候变量名前必须加 ( A )
A.$ B.% C.& D.#
7.下面程序段输出结果为 ( B )
if($a%2==0) echo “偶数”;
else echo“奇数”;
?>
A.偶数 B. 奇数 C. 合数 D. 显示错误
8.以下程序输出结果为 ( D )
A.5050 B.4950 C.5100 D.5049
$b=2;
for(;$b<=100;$b++)
{$sum=$sum+$b;}
echo $sum;
?>
9.运行下面程序段,输出结果为( D )
<? $arr=array (3,5,7,9,6);
echo $arr[3];
?>
A.3 B.5 C.7 D.9
10.php自定义函数返回内部值,使用的返回函数是( C )
A.printf B.md5 C.return D.function
11.以下哪种不是php的标记风格?(D )
A. B. C. D.
12.以下哪种注释风格是php的多行注释? ( B )
A.//... B. /*...*/ C.#... D.!...!
13.php使用的输出语句是 ( C )
A.out.print B.response.write C.echo D. scanf
14.下面程序段输出结果为 ( A )
if($a%2==1) echo “奇数”;
else echo“偶数”;
?>
A.偶数 B. 奇数 C. 合数 D. 显示错误
15.以下程序输出结果为 ( B )
A.5050 B.4950 C.5100 D.5000
$b=1;
for(;$b<100;$b++)
{$sum=$sum+$b;}
echo $sum;
?>
二、填空题
1.php的多行注释是__/*…*/_______________。
2.php的两种复合数据类型是___数组型_____________和对象型。
3.转义字符“换行”是_\n______________。
4.php使用__function_____________函数来定义一个自定义函数。
5.php标记对的完整形式是_______________。
6.php使用的循环跳出语句是_break___________和continue。
7.php中foreach是用来_循环数组______________。
8.统计数组元素个数的函数为__count()_____________。
9.mysql数据库中删除一个数据表的sql语句是__DROP TABLE_________________。
10.mysql数据库中主键是能_IGNORE__________标识一行记录的字段。
一、基础题
1. 写出如下程序的输出结果
$str1 = null;
$str2 = false;
echo $str1==$str2 ? ‘相等’ : ‘不相等’;
$str3 = ”;
$str4 = 0;
echo $str3==$str4 ? ‘相等’ : ‘不相等’;
$str5 = 0;
$str6 = ’0′;
echo $str5===$str6 ? ‘相等’ : ‘不相等’;
?>
2. 写出如下程序的输出结果
$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = ”;
$a5 = ’0′;
$a6 = ‘null’;
$a7 = array();
$a8 = array(array());
echo empty($a1) ? ‘true’ : ‘false’;
echo empty($a2) ? ‘true’ : ‘false’;
echo empty($a3) ? ‘true’ : ‘false’;
echo empty($a4) ? ‘true’ : ‘false’;
echo empty($a5) ? ‘true’ : ‘false’;
echo empty($a6) ? ‘true’ : ‘false’;
echo empty($a7) ? ‘true’ : ‘false’;
echo empty($a8) ? ‘true’ : ‘false’;
?>
3. 写出如下程序的输出结果
$test = ‘aaaaaa’;
$abc = & $test;
unset($test);
echo $abc;
?>
4. 写出如下程序的输出结果
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo get_count();
echo get_count();
?>
5. 写出如下程序的输出结果
$GLOBALS['var1'] = 5;
$var2 = 1;
function get_value(){
global $var2;
$var1 = 0;
return $var2++;
}
get_value();
echo $var1;
echo $var2;
?>
6. 写出如下程序的输出结果
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);
?>
7. 使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)
二、算法题
1. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
#---------------------
(以下答案不一定是最好的,只是一个简单的参考)