VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • PHP面试(A-01)

【智力部分】(20分)

1.有一种细菌,经过一分钟分裂为2个,再过一分钟,分裂为4个,这样,将一个细菌放在一个瓶子里面,一个小时后瓶子被细菌充满了。现在假设一开始放入瓶中的为两个细菌,那么到充满瓶子要多长的时间?(10分)

59分钟
	一个细菌的时候是2的60次方个细菌才把瓶子填满,两个细菌开始则是2*2的59次方,故结果是59分钟

2.一只蜗牛从井底爬到井口,每天白天蜗牛要睡觉,晚上才出来活动,一个晚上蜗牛可以向上爬3尺,但是白天睡觉的时候会往下滑2尺,井深10尺,问蜗牛几天可以爬出来?(10分)

8天或者7天加一夜
		7天爬7尺,第七天晚上向上爬了3尺,已经爬出了井口,所以白天就没有再下滑2尺的动作

【专业部分】(75分)

3.谈谈你对MVC的认识,介绍几种目前比较流行的MVC框架?(5分)

由模型(model),视图(view),控制器(controller)完成的应用程序 
由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图; 
BroPHP,ThinkPHP,Zend,Yii

4.html表单中 GET与POST提交方法的区别?(5分)

a)GET是发送请求HTTP协议通过url参数传递进行接收,而POST是实体数据,可以通过表单提交大量信息. 
b)GET传参会有大小的限制,因浏览器和操作系统的不同而不同。而POST传参理论上不受限,但是一般会人为设定。
c)POST安全性比GET

5.请简述SESSION与COOKIE的区别?(5分)

a)session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放  
cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。  

6.求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数。(5分)

<?php
	function get_days($date1,$date2){
		$time1=strtotime($date1);
		$time2=strtotime($date2);
		return abs($time1-$time2)/86400;
	}
	echo get_days('2007-2-5','2007-3-6');
?>

7.写出如下程序的输出结果 (5分)

aaaaaa

8.在空表News中,字段ID为自增主键,批量插入17条记录之后,发现最后三条数据有误,删除此三条记录后重启Mysql数据库,再重新插入三条记录,请问最后一条记录的ID值是多少?(5分)

如果是innodb类型结果是17
如果是myisam类型,结果是20

9.至少写出一种验证139开头的11位手机号码的正则表达式。(5分)

‘/^139[0-9]{8}$/x’
	‘/^139\d{8}/x’

10.请写一个函数,实现以下功能:
字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。(10分)

function diversion($str){
	$arr=explode('_',$str);
	foreach($arr as $v){
		$res.=ucfirst($v);
	}
	return $res;
}
echo diversion('open_door');
echo diversion('make_by_id');

11.请写一个函数将1234567890转换成1,234,567,890 每3位用逗号隔开的形式。(10分)

Echo Number_format(1234567890);

12.有A(id,sex,par,c1,c2),B(id,age,c1,c2)两张表,其中A.id与B.id关联,现在要求写一条SQL语句,将B中age>50的记录的c1、c2更新到A表中统一记录中的c1、c2字段中。(10分)

Update A,B set A.c1=B.c1 ,A.c2=B.c2 where A.id=B.id and B.age>50;

13.请用php写出以下程序:假设网络中有一台服务器192.168.1.101,开放端口8899进行侦听,请用php的socket相关知识,写出一个简易的client,连接到server,并发送字符串”hello server!”。程序仅对连接的成功和失败进行简易错误判断和处理即可。(10分)

//***客户端代码 需要准备服务端代码才可执行下面
//***准备服务端端口

$service_port = 8899;

//***准备主机地址

$address = '192.168.1.101';

//***创建socket
//***协议***AF_INET 这是大多数用来产生socket的协议,使用TCP或UDP来传输,用在IPv4的地址 
//***socket类型***SOCK_STREAM 这个协议是按照顺序的、可靠的、数据完整的基于字节流的连接。这是一个使用最多的socket类型,这个socket是使用TCP来进行传输。
//***公共协议***SOL_TCP 和  getprotobyname(“tcp”)函数一样的效果 使用公共协议名字来获取一个协议类型。在这里使用的是TCP公共协议,如果你想使用UDP或者ICMP协议,那么你应该把getprotobyname()函数的参数改为“udp”或“icmp”。

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

//***如果$socket创建失败 获取socket失败信息提示

if ($socket === false) {
	echo "socket创建失败,原因: " . socket_strerror(socket_last_error()) . "\n";
} else {
	echo "socket创建成功<br />";
}

//***开始socket连接
//***$socket 已创建好的socket资源
//***$address 主机地址
//***$service_port 服务端端口

$result = socket_connect($socket, $address, $service_port);

//***判断是否连接成功

if($result === false) {
	echo "socket连接失败: ({$result}) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
	echo "socket连接成功<br />";
}

//***准备发送数据

$in='hello server!';

//***输出内容初始化

$out = "";
//***写数据到socket缓存

socket_write($socket, $in, strlen($in));

//***读取指定长度的socket数据
//***$socket 已创建好的socket资源
//***8192 读取内容的指定长度

while ($out = socket_read($socket, 8192)) {
	//***输出读取到的内容

	echo $out;
}
//***关闭socket连接
socket_close($socket);

【Linux知识】(15分)

14.如何实现每天0点钟重新启动服务器。(5分)

cd /opt/
vim re_server.txt
0 0 * * * service httpd restart

crontab re_server.txt

/sbin/service crond restart

15.当前目录下有一个文件为 showme.sh , 如何修改文件,将其指定为使用 /bin/bash 运行(5分),如何修改其权限为所有用户可读写,所有用户可执行。(5分)

16.当前目录下有一个文件为 showme.sh,如何修改其所有人为root。(5分)

chown root:root showme.sh

【附加部分】(30分)

1.使用thinkphp在控制器(Action)中传递一个一维数组到视图(Tpl),并将数组循环显示在前台页面,请简要的写出前后台的主要代码。(10分)

以BroPHP为例:
	On.class.php://控制器
		Class one{
			Function two(){
				$arr=array(1,2,3,4,5,6);
				$this->assign(‘arr’,$arr);
}
}
	
		Two.htm://模版文件 视图
		<{foreach $arr as $v}>
			<{$v@key}>->
			<{$v}><br />	
<{/foreach}>

2.请用php编写程序,读取出www.baidu.com的首页的网页内容(仅html),并存入字符串 $str.(10分)

$str=file_get_contents(‘http://www.baidu.com’);

3 请用php将上题中读取出的网页内容的<title>标签的值解析出来。(10分)

$zz=’/<title>(.*?)<\/title>/ixums’;
	preg_match_all($zz,$str,$res);
	var_dump($res);
 
来源:https://www.cnblogs.com/wjw9/p/15504281.html


相关教程