page contents

新浪乐居 PHP 面试题+答案

一、 1、有如下HTML:<img title=’aaaa’ sina_title=’bbbb’ id=’img1′> 1)用js取得________方法取得该对象; 2)用________属性取得属性title的属性值; 3)用________方法取得属性si...

attachments-2021-06-yMGfrsSG60c2cf859db35.png

一、

1、有如下HTML:<img title=’aaaa’ sina_title=’bbbb’ id=’img1′>

1)用js取得________方法取得该对象;

2)用________属性取得属性title的属性值;

3)用________方法取得属性sina_title的属性值;

(1) document.getElementById(‘img1′);

(2) document.getElementById(‘img1′).getAttribute(‘title’);

(3) document.getElementById(‘img1′).getAttribute(‘sina_title’);

2、php中对数组序列化和反序列化的函数分别是______和_______;

serialize,upserialize

3、rawurlencode和urlencode函数的区别是__________________;

rawurlencode会将空格转换为+,urlencode会把空格转换为%20

4、php中过滤HTML的函数是_______,转义的函数是____________;

strip_tags,htmlspecialchars

5、写出用正则把HTML中的js脚本过滤掉;

preg_replace(‘/<script.*?//script>/is’,”,$htmlcode);

6、SQL中LEFT JOIN的含义是______________;

如果有一个表tl_user存储学生ID和名字name,另外一个表tl_score存储学生ID、科目subject和成绩score(有的学生没有考试成绩),写出sql语句打印出学生名字和各科总成绩;

左联接,首先将左表中所有数据取出,然后再将满足where条件中的右表数据取出来。当此行的数据并不满足where条件,则返回空.

select tu.name,sum(ts.score) as totalscore from tl.user left join tl_score on tl.uid = ts.uid;

7、写出三个调用系统命令的函数;

system,passthru,exec

8、josn处理数组的函数是;

json_encode,json_decode

9、php中判断变量是否被设置是函数是_______;判断是否为空的是___________;

isset,empty

10、error_reporting(“E_ALL”)和ini_set(“display_errors”, “on”)的区别_________;

前者是设置错误显示等级,E_ALL代表提示全部错误(包括notice,warnning和error)。后者是设置让php显示错误,在关于错误显示控制中,后者的优先级最高。

11、PHP写出显示客户端IP的预定义变量________;提供来路url的是__________;

$_SERVER['REMOTE_ADDR'],$_SERVER['HTTP_REFERER']

12、php把utf-8转换成gbk的函数是___________;

iconv(‘UTF-8′,’GBK’,$str);

13、php中分割字符串成数组的函数__________,连接数组成字符串的是_______;

explode,implode

14、php中类的静态方法怎么使用_____________________________________;

在类外部,使用:类名后面跟双冒号,再后面是方法名,类似classname::staticFucntion(),由于静态方法不属于某个对象,而是隶属于整个类,所以要用类名来调用它。


二、

1、如下错误:mysql server not go away,的原因是什么?(大概这是这样)

应该是mysql has gone away吧?

一般情况下是由于max_allowed_packet设置的值过小导致的,max_allowed_packet用来控制缓冲区的包大小,有时在导入数据的时候,此值过小就容易造成缓冲区容量不够。将my.ini或my.cnf中的此值设置大一些即可解决。

还有一种可能是连接数据库时使用了单例模式,多次操作数据库但都使用的是同一个连接,由于mysql处理每个线程也是队列模式,当前一个操作还没执行完毕并且间隔小于wait_timeout所设置的值时就容易出现此问题,解决办法是将wait_timeout的值设置大一些。

2、mysql的静态表和动态表的区别,MyISAM和InnoDB的区别.

静态表是当一个表中没有采用varchar,blob,text这种可变长字段时,此表就是静态表,反之,如果一个表内存在至少一个可变长字段时,或者如果一个表被用ROW_FORMAT=DYNAMIC选项来创建,此表就为动态表。

myisam与innodb的区别在于,myisam不支持事务处理,因为其不用去做commit操作,所以操作起来速度会比innodb较快。innodb在安全性方面要好于myisam,由于支持事务处理,insert,update,delete,select。等操作在默认autocommit=0时,会将每一个操作都当作一个事务,可以进行rollback。如果autocommit=1时,每一个操作后它都会自动提交此事务,会造成执行的效率很慢,大概会比myisam慢10倍。

3、$a = 1; $b = & $a;

unset($a),$b是否还是1,为什么?

unset($b),$a是否还是1,为什么?

都等于1。

在php中,引用赋值不同于指针的感念,他只是将另一个变量名指向了某个内存地址。此题中:$b = &$a;只是将$b这个名字也指向了$a变量所指向的内存地址。unset时只是释放了这个名字的指向,并没有释放内存中的值。另一方面讲unset($a),其实也并未真正立刻释放内存中的值,也只是释放了这个名字的指向而已,该函数只有在变量值所占空间超过256字节长的时候才会释放内存,并且只有当指向该值的所有变量(比如有引用变量指向该值)都被销毁后,地址才会被释放。


三、

1、写出至少三个函数,取文件名的后缀,如文件’/as/image/bc.jpg’,得到 jpg或者.jpg。

function myGetExtName1( $path ){
 //取出最后一个出现.这个字符的索引位置
 $begin = strrpos($path,’.');
 //取出整个字符串长度
 $end = strlen($path);
 //从最后一个.的索引的位置截取到字符串的总长度后的结果返回
 return $begin?substr($path,$begin,$end):’该文件没有扩展名’;
}
function myGetExtName2( $path ){
 return preg_match_all(‘//.[^/.]+/is’,$path,$m)?$m[0][count($m[0])-1]:’该文件没有扩展名’;
}
function myGetExtName3( $path ){
 //找到最后一个出现.字符的索引位置并将其后面的所有字符一起返回
 return strrchr($path,’.')?strrchr($path,’.'):’该文件没有扩展名’;
}

2、写一个函数,算出两个文件的相对路径如 $a = ‘/a/b/c/d/e.php’; $b = ‘/a/b/12/34/c.php’; 计算出 $b 相对于 $a 的相路径。

$a = ‘/a/b/c/d/e.php’;
$b = ‘/a/b/12/34/c.php’;
//求$b相对于$a的相对路径
function getRelativelyPath($a,$b){
 //拆分成数组
 $a = explode(‘/’,$a);
 $b = explode(‘/’,$b);
 $path = ”;
 //将两个数组的索引重置
 $c = array_values(array_diff($a,$b));
 $d = array_values(array_diff($b,$a));
 
 //去除掉a路径的文件名
 array_pop($c);
 //将a路径中的目录名替换为..
 foreach($c as &$v) $v = ‘..’;
 
 //合并两个数组
 $e = array_merge($c,$d);
 //拼接路径
 foreach($e as &$v)
  $path .= $v.’/';
 return rtrim($path,’/');
}

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-hcXI38NO62ac3120f0746.jpeg

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1324 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章