【PHP Interview001】
1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中
(1)
$_SERVER["SCRIPT_NAME"]=> string(15) "/test/index.php"
$_SERVER["PHP_SELF"]=> string(15) "/test/index.php"
脚本绝对路径:$_SERVER["SCRIPT_FILENAME"]=> string(25) "D:/wwwroot/test/index.php"
(2)
$_SERVER['PHP_REFERER'];
2.执行程序段<?php echo 8%(-3) ?>将输出__。
echo 8%(-3) //取模$a % $b 取得结果的符号取决于$a,=> 2 echo (-8)%(3) //=>-2
3.在HTTP 1.0中,状态码 401 的含义是____;如果返回“找不到文件”的提示,则可用 header 函数,其语句为____。
401: Unauthorized 未授权;header("HTTP/1.0 404 Not Found");
4.数组函数 arsort 的作用是____;语句 error_reporting(2047)的作用是____。
//数组排序函数总结: sort — 对数组排序 当本函数结束时数组单元将被从最低到最高重新安排。 rsort — 对数组逆向排序 asort — 对数组进行排序并保持索引关系 arsort — 对数组进行逆向排序并保持索引关系 krsort — 对数组按照键名逆向排序 ksort — 对数组按照键名排序 uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 uksort — 使用用户自定义的比较函数对数组中的键名进行排序 usort — 使用用户自定义的比较函数对数组中的值进行排序
error_reporting(2047)的作用是:report All errors and warnings
5.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):
echo preg_replace('/<script[^>].*?>.*?<\/script>/si','',$str);
6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
LoadModule php5_module "D:/phpstudy/apache/bin/php5apache2.dll"
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
7.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
在如何处理失败时,include()产生一个警告二require()则导致一个致命的错误;require_once()/include_once().
8.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.
答:allow_call_time_pass_reference boolean :是否启用在函数调用时强制参数被按照引用传递
9.SQL 中LEFT JOIN的含义是__,如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____.
create table tbl_user( ID int not null auto_increment primary key, name varchar(20) not null default '' )engine myisam charset utf8; create table tbl_score( ID int not null, score decimal(6,2) not null, subject varchar(20) not null )engine myisam charset utf8; insert into tbl_user (ID, name) values (1, 'beimu'); insert into tbl_user (ID, name) values (2, 'aihui'); insert into tbl_score (ID, score, subject) values (1, 90, '语文'); insert into tbl_score (ID, score, subject) values (1, 80, '数学'); insert into tbl_score (ID, score, subject) values (2, 86, '数学'); insert into tbl_score (ID, score, subject) values (2, 96, '语文'); select u.ID,u.name,sum(s.score) as sumscore from tbl_user u left join tbl_score s on u.ID = s.ID group by u.id;
10. 在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____
答:结束标识符所在的行不能包含任何其它字符除";"
1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。 2.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下: $v=2; $a= <<<EOF "abc"$v "123" EOF; echo $a; //结果连同双引号一起输出:"abc"2 "123"
11.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
function my_scandir($dir) { $files = array(); if (is_dir($dir)) { if ($handle = opendir($dir)) { while (($file = readdir($handle)) !== false) { if ($file != "." && $file != "..") { if (is_dir($dir . '/' . $file)) { $files[$file] = my_scandir($dir . '/' . $file); } else { $files[] = $dir . '/' . $file; } } } closedir($handle); return $files; } } } $dir = 'D:/wwwroot/test/alipay'; var_dump(my_scandir($dir));
浙公网安备 33010602011771号