PHP面试题41-60
41、“===”是什么?试举一个“==”是真但“===”是假的例子。
“===”是给既可以返回布尔值“假”,也可以返回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和 strrpos() 便是其中两个例子。
问题的第二部份有点困难,想一个“==”是假,但是“===”是真的例子却很容易,
相反的例子却很少。但我终于找到以下的 例子:
if (strpos("abc", "a") == true){ // 这部分永不会被执行,因为 "a" 的位
置是 0,换算成布尔值“假”}if (strpos("abc", "a") === true){ // 这部份
会被执行,因为“===”保证函式 strpos() 的返回值不会换算成布尔值.}
42、如何修改SESSION的生存时间(1分).
答:方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache
方法2:
savePath = "./session_save_dir/";lifeTime = 小时 * 秒;
session_save_path(savePath); session_set_cookie_params(lifeTime);
session_start();
方法3:setcookie() and session_set_cookie_params($lifeTime);
43、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
答:heredoc的语法是用"<<<"加上自己定义成对的标签,在标签范围內的文字视为一
个字符串
例子:
str = <<email)
{
pregEmail = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i"; return preg_match(pregEmail,$email);
}
46、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char
有什么区别(2分)
答:int是数字类型,char固定长度字符串,varchar非定长字符串,datetime日期时
间型,text文本字符串
char的长度固定为创建表设置的长度,varchar为可变长度的字符
47、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
答:isset(str),empty(str);
48、取得查询结果集总数的函数是?(1分)
答:mysql_num_rows($result);
49 简述如何得到当前执行脚本路径,包括所得到参数。
<?php
echo "http://"._SERVER['SERVER_NAME']._SERVER['PHP_SELF']."?"._SERVER ['QUERY_STRING']; //echo "http://"._SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
?>
50 请举例说明在你的开发过程中用什么方法来加快页面的加载速度
(1)要用到服务器资源时才打开,及时关闭服务器资源,
(2)数据库添加索引,
(3)页面可生成静态,图片等大文件单独服务器。
(4)使用代码优化工具
51. 给定一个用逗号分隔一组值的字符串,以下哪个函数能在仅调用一次的情况下就把每个独立的值放入一个新创建的数组?D
A.strstr()
B.不可能只调用一次就完成
C.extract()
D.explode()√
E.strtok()
52.如果用+操作符把一个字符串和一个整型数字相加,结果将怎样?B
A.解释器输出一个类型错误
B.字符串将被转换成数字,再与整型数字相加
C.字符串将被丢弃,只保留整型数字
D.字符串和整型数字将连接成一个新字符串
E.整形数字将被丢弃,而保留字符串
53.以下脚本输出什么?B
s = '12345';s[s[1]] = '2'; echos;
?>
A.12345
B.12245√
C.22345
D.11345
54.以下脚本输出什么?B
x = 'apple'; echo substr_replace (x, 'x', 1, 2);
?>
A.x
B.axle√
C.axxle
D.applex
E.xapple
55. 函数______能读取文本文件中的一行。读取二进制文件或者其他文件时,应当
用______函数。D
A.fgets(), fseek()
B.fread(), fgets()
C.fputs(), fgets()
D.fgets(), fread()√
E.fread(), fseek()
56.哪个函数能够往文本文件中写入一个字符串?
答案:fwrite()和fputs()两个函数在这里都可以,而后者其实是前者的别名。在
PHP中,写入二进制数据和写入字符串没有区别。
57.函数______能判断一个文件是否可写。
答案:is_writeable
58.以下哪个选项能将文件指针移到开头?D
A.reset()
B.fseek(-1)
C.fseek(0, SEEK_END)
D.fseek(0, SEEK_SET)√
E.fseek(0, SEEK_CUR)
59、include的功能和require一样,不同的是,require不能用在[ E ]
A、判断语句或循环里,
B、连接语句里
C、声明语句里
D、文件的开头
E、文件的中间√
50、下面建立与MySQL Server的连接语法正确的是:[BD ]
A、link=connect("host_name","user_name","password"); B、link=mysql_connect("host_name","user_name","password");√
C、link=mysqlconnect("host_name","user_name","password"); D、link=mysql_pconnect("host_name","user_name","password");√
E、$link=pconnect("host_name","user_name","password");
51.将字符串转换成小写
strtolower(): 该函数将传入的字符串参数所有的字符都转换成小写,并以小写形式
放回这个字符串
52.将字符转成大写
strtoupper(): 该函数的作用同strtolower函数相反,是将传入的字符参数的字符全
部转换成大写,并以大写的形式返回这个字符串.用法同strtolower()一 样.
53.将字符串首字符转换成大写
ucfirst(): 该函数的作用是将字符串的第一个字符改成大写,该函数返回首字符大
写的字符串.用法同strtolower()一样.
54.将字符串每个单词的首字符转换成大写
ucwords(): 该函数将传入的字符串的每个单词的首字符变成大写.如"hello
world",经过该函数处理后,将返回"Hello Word".用法同strtolowe()一样.
55、NoSQL:Not Only SQL
思想:网站产生的数据,一部分存储数据库、一部分存到NoSQL相关产品
NoSQL产品
1、Memcache:内存(速度快、数据量小)、数据的过期时间
2、MongoDB:文档数据库
3、Redis:内存(速度快、数据量小)、库、没有过期时间
56、什么样的数据,存储在什么位置?
MySQL:稳定的数据
NoSQL:活跃的数据
57缓存分类
1、缓存数据存储位置不同
1)文件缓存
2)内存缓存
2、缓存的数据量的不同
1)页面缓存
2)局部缓存
3)局部不缓存
4)数据缓存(变量缓存、动态缓存)
Memcache:内存缓存、变量缓存
58 .LINUX命令
查看当前目录下所有内容 ls
在当前目录下,新建一个文件夹 mkdir 文件夹名
删除指定的文件夹 rmdir 文件夹名 只能删除空目录
在当前目录下新建一个空白文件 touch 文件名
删除当前目录下的一个文件 unlink文件名
删除文件或文件夹 rm
复制文件 cp
移动文件或文件夹 mv
文件或文件夹重命名 mv
查看完整的工作目录 pwd
切换目录: cd cd/ 返回根目录
文件传输 ftp
查看文件内容 cat 文件名
查看文件编码 file 文件名
查找文件 find 路径 -name 文件名
修改文件或文件夹权限
权限种类:r 4(读)、w 2(写)、x 1(执行)
权限操作符:+(赋予权限)、-(收回权限)
用户种类:a(所有人)、u(文件拥有者)、g(组用户)、o(其他用户)
查看权限:ls -l
-rw-r--r-- a.txt
drwxr-xr-x hello
第1位:是文件还是文件夹(-文件、d文件夹)
第234位:u用户的权限
第567位:g用户的权限
最后三位:o用户的权限
1)将最大权限赋予a.txt
chmod a+r+w+x a.txt
chmod 777 a.txt
2)设置a.txt权限,收回o用户的wx权限
chmod o-w-x a.txt
4)设置a.txt权限:u:rw g:r o:r
chmod 644 a.txt
5)设置hello文件夹权,给予最大权限(不影响子文件)
chmod 777 hello
6)设置hello文件夹权,给予最大权限(影响子文件)
chmod -R 777 hello
59、创建文件exer1,设置访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,写出操作过程的命令(10分)
touch exer1
chmod 644 exer1
增加权限
chmod a+x exer1
chmod g+w exer1
或者
chmod 775 exer1
60、易出现编码的地方
文件保存格式的编码
<meta http-equiv=”content-type” content=”text/html;charset=utf-8”>
Header();
Msq本身的编码(修改ini)
Set names gbk;
Mysql_query(“set names utf8”);
Iconv()PHP的系统函数进行转码