常见PHP的面试笔试题参考指南

  •   
  • 3391
  • PHP
  • 8
  • super_dodo
  • 2016/07/03

抓取远程图片到本地,使用什么函数:fsockopen

用最少的代码写一个求3值最大值的函数:

function bigValue($a,$b,$c){
	return $a > $b ? ($a > $c ? $a : $c) :($b > $c ? $b : $c);
}
输出正在浏览当前页面用户的IP地址: 127.0.0.1
echo $_SERVER['REMOTE_ADDR'];

输出查询字符串URL中第一个问号之后的内容 id=22&name=223
echo $_SERVER['QUERY_STRING'];

输出当前运行脚本所在文档根目录:d:/www/root
echo $_SERVER['DOCUMENT_ROOT'];

打印服务器IP:
echo gethostbyname("www.baidu.com");

链接到当前页面的URL记录
echo $_SERVER['HTTP_REFERER'];

error_reporting(2047)的作用是 report ALL errors AND warning

在HTTP中各种状态码的含义是:
200 正常OK
302 找到
400 请求失败
401 未授权
403 禁止访问
404 未找到 header("HTTP/1.0 404 Not Found");
500 服务器内部错误

写一个函数能够遍历一个文件夹下的所有文件和子文件夹。

function mySacnDir($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] = mySacnDir($dir.'/'.$file);
					}else{
						$files[] = $dir.'/'.$file;
					}
				}
			}
			closedir($handle);
			return $files;
		}
	}
}
print_r(mySacnDir("D:\wamp\www\weboot"));

写一个9*9的乘法表:

for($i=1;$i<10;$i++){
	for($j=1;$j<=$i;$j++){
		echo $j.'X'.$i.'='.$i*$j;
	}
	echo '<br>';
}

举例说明再开发过程中用什么方法来加快页面的加载速度:

1.用到服务器资源的时候才打开,及时关闭服务器资源。
2.数据库相应的字段添加索引。数据表优化。
3.页面静态化,memcache技术,缓存技术。
4.图片等大文件单独服务器。
5.代码优化,逻辑优化,图片资源优化。
6.提高服务器的性能,cdn加速等。

优化MySQL数据库的方法

1.选取最适合的字段属性,尽量把字段设置成NOT NULL,这样执行查询时不用比较NULL的值。
2.使用连接(JOIN)代替子查询.
3.使用UNION来代替手动穿件的临时表.
4.尽量少用LIKE关键字和通配符。
5.多表操作的使用使用事务,使用外键。
6.保证单表的数据不超过200万,适时的分隔切割表(水平分隔,垂直切割)分摊查询压力。
7.硬件扩展,内存CPU提升,增加服务器性能。
8.select 子句中避免使用 '*',
9.避免在索引上使用计算。
10.提高Group BY的语句效率,可以通过将不需要的记录在GROUP BY之前过滤掉。

提高Apache的性能的方法。

1.设置最多链接数量
2.允许每次链接可有无限制请求。
3.合理配置超时时间。
4.慎用允许持久性链接。
5.Linux效果优于windows条件允许的话mysql和apache分离开在不同的机器上。

mysql中字段的类型varchar和char的主要区别是:varchar是变长节省固定长度,char是固定长度。查找效率char型快,因为varchar是非定长,必须先查找长度,然后进行数据的提取,比char定长类型多了一个步奏,所以效率低了一些。

写出三种以上MySQL数据库的存储引擎InnoDB,MyISAM,BDB,Merge,Memory,Example,CSV.

$url= 'http://www.baidu.com/abc/de/fg.php?id=1';
$pUrl = parse_url($url);
print_r($pUrl);
Array(
	['scheme']=>'http',
	['host']=>'www.baidu.com',
	['path']=>'abc/de/fg.php',
	['query']=>'id=1',
);

basename(path);
pathinfo(path);

ucwords()  //首字母大写
echo count('abc'); 	// 1

前进:history.forward(); history.go(1);
后退:history.back(); history.go(-1);

请说明在PHP中"" 和 ''的区别。
双引号里面的字段会经过编辑器解释,然后在当做HTML代码输出。单引号里面的不进行解释,直接输出。单引号解析的时间比双引号快。

PHP的垃圾回收机制(Garbage Collector 简称 GC)
在PHP中没有任何变量指向这个对象时,这个对象就成为了垃圾,PHP会将其在内存中销毁,这就是PHP的垃圾处理机制,防止内存溢出。GC进程一般都跟着每一个SESSION开始运行的。GC目的是为了session文件过期后子松删除销毁这些文件。