php面试题解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php面试题解答相关的知识,希望对你有一定的参考价值。

能答几个算几个··
一、
1、有如下html:<img title='aaaa' sina_title='bbbb' id='img1'>
1)用js取得________方法取得该对象;
2)用________属性取得属性title的属性值;
3)用________方法取得属性sina_title的属性值;
2、php中对数组序列化和反序列化的函数分别是______和_______;
3、rawurlencode和urlencode函数的区别是__________________;
4、php中过滤HTML的函数是_______,转义的函数是____________;
5、写出用正则把HTML中的js脚本过滤掉;
6、SQL中LEFT JOIN的含义是______________;
如果有一个表tl_user存储学生ID和名字name,另外一个表tl_score存储学生ID、科目subject和成绩score(有的学生没有考试成绩),写出sql语句打印出学生名字和各科总成绩;
7、写出三个调用系统命令的函数;
8、josn处理数组的函数是;
9、php中判断变量是否被设置是函数是_______;判断是否为空的是___________;
10、error_reporting("E_ALL")和ini_set("display_errors", "on")的区别_________;
11、PHP写出显示客户端IP的预定义变量________;提供来路url的是__________;
12、php把utf-8转换成gbk的函数是___________;
13、php中分割字符串成数组的函数__________,连接数组成字符串的是_______;
14、php中类的静态方法怎么使用_____________________________________;
二、
1、如下错误:mysql server not go away,的原因是什么?(大概这是这样)
2、mysql的静态表和动态表的区别,MyISAM和InnoDB的区别.
3、$a = 1; $b = & $a;
unset($a),$b是否还是1,为什么?
unset($b),$a是否还是1,为什么?
三、
1、写出至少三个函数,取文件名的后缀,如文件'/as/image/bc.jpg',得到 jpg或者.jpg。
2、写一个函数,算出两个文件的相对路径如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 计算出 $b 相对于 $a 的相路径。
3、用二分法(也叫折半查找法)查找某元素,对像可以是有序数组。
<?php
$array = array(1,3,5,9,11,23,45,68,78,95,112,235,452);
function binary($array, $search)

1,
var x=document.getElementById("img1");
var title=document.getElementById("img1").title;
var sina_title=document.getElementById("img1").sina_title;

2,serialize(),unserialize();

3,编码方式不同,urlencode()将字串以URL编码。例如空格就会变成加号。
rawurlencode()将url编码成url的字符串专用格式,特殊字符回转换成百分号后面加两个十六子介数字的格式。
4,strip_tags(),html_entity_decode();

5,$str=preg_replace("/\<script.*\>.*\<\/script\>/i","",$str);
6,左连接,左连接的表如果没有匹配的数据不影响结果。
7
SELECT name,score FROM tl_user LEFT JOIN tl_score ON tl_user.ID=tl_score.ID
7 system(),exec(),passthru()
8,json_decode ,json_encode
9 isset() empty()
10 后者的权限大于前者,后者是OFF的话,前者就算是E-ALL也没用。
11,$_SERVER['REMOTE_ADDR'];
12,incov()
echo iconv("gbk",""UTF-8,"我们");
mb_convert_encoding($str, "GBK", "UTF-8")
13 explode() split() ;implode() join()
14 注意事项挺多的,懒得写。

1,超时,服务器已经关闭连接
2 静态表字段长度固定,自动填充,读写速度很快,便于缓存和修复,但比较占硬盘,动态表是字段长度不固定,节省硬盘,但更复杂,容易产生碎片,速度慢,出问题后不容易重建。
3InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
MyIASM是IASM表的新版本,有如下扩展:
二进制层次的可移植性。
NULL列索引。
对变长行比ISAM表有更少的碎片。
支持大文件。
更好的索引压缩。
更好的键吗统计分布。
更好和更快的auto_increment处理。
1.MySQL最大的优势在于MyISAM引擎下的简单SELECT,INSERT和UPDATE快速操作
2.MyISAM类型的数据文件可以在不同操作系统中COPY,这点很重要,布署的时候方便点。

以下是一些细节和具体实现的差别:
1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”
以暂对存储引擎的认识,觉得 InnoDB 支持外键,在数据量可以用“庞大”来形容时,在有良好的 INDEX 的基础上,InnoDB 的查询速度应该比 MyISAM 要快。
在 Falcon 有稳定版本前,我想 MyISAM 是一个可用的选择方案。
任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势
3, 都是1 ^^懒得回答了,睡觉去。
参考技术A 6:连接两个表之间的联系

以上是关于php面试题解答的主要内容,如果未能解决你的问题,请参考以下文章

腾讯php面试题

分享几套2019年各大公司最新的PHP面试题,几斤几两一试便知

PHP程序员上机面试题(并附答案,回答好的加分)

php高级面试题知识点(转载)

求PHP面试题?急忙

最全最详细的PHP面试题(带有答案)