php笔试题整理
[问答题]session与cookie的区别?
session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。 两者都可通过时间来设置时间长短
[问答题]有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?
方法1(对于PHP5及更高版本):
$readcontents = fopen("http://www.phpres.com/index.html", "rb");
$contents = stream_get_contents($readcontents);
fclose($readcontents);
echo $contents;
方法2:
echo file_get_contents("http://www.phpres.com/index.html");
[问答题]请写出php5的构造函数和析构函数
__construct , __destruct
[问答题]对于大流量的网站,您采用什么样的方法来解决访问量问题?
确认服务器硬件是否足够支持当前的流量,数据库读写分离,优化数据表, 程序功能规则,禁止外部的盗链,控制大文件的下载,使用不同主机分流主要流量
[问答题]请举例说明在你的开发过程中用什么方法来加快页面的加载速度
要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具
[问答题]简述UCenter的单点登录机制
所谓单点登录,无非就是几个站点共用一个用户中心,实现同步登陆,同步退出。 其实最终还是用户去登录,只是采用了ajax (javascript利用src异步跨域调用)用户不会发现。 而且利用了p3p头实现了,不同域名,单点登录(ucenter用的cookie) 缺点就是采用ajax 客服端请求 ,如果有10个以上应用,登录速度就慢下来了。
php连接数据库操作?
<?php $con=mysql_connect("localhost","root","f5e5eb1"); //获得连接 mysql_query("set names 'utf8'");//设置编码 if(!$con){ die('could not connect'); } mysql_select_db("anni", $con);//操作数据库 $result=mysql_query("select * from admin"); while($row=mysql_fetch_array($result)){ var_dump($row); } mysql_close($con);
php读取某个目录下的所有文件名?
<?php $hostdir = dirname(__FILE__); //获取本文件目录的文件夹地址 $filesnames = scandir($hostdir); //获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames //print_r ($filesnames); foreach ($filesnames as $name) { //echo $name; $url = "http://www.****.com//" . $name; $aurl = "<a href=\"" . $url . "\">" . $url . "</a>"; echo $aurl . "<br/>"; }
php动态创建文件夹。如果该文件夹存在,则创建失败,如果不存在,则创建文件,代码怎么写?
<?php function createdir($path,$mode){ if (is_dir($path)){ echo "目录'" . $path . "'已经存在"; }else{ $re=mkdir($path,$mode,true); //第三个参数为true即可以创建多极目录 if ($re){ echo "目录创建成功"; }else{ echo "目录创建失败"; } } } $path="d:/test/test"; //要创建的目录 $mode=0755; //创建目录的模式 createdir($path,$mode);//测试 ?>
写一个函数,算出两个文件的相对路径 如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php'; 计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
<?php /** by www.phpddt.com */ $a = '/a/b/c/d/e.php'; $b = '/a/b/13/34/c.php'; echo getRelativePath($a, $b); //"../../12/34/" function getRelativePath($a,$b){ $a2array = explode('/', $a); $b2array = explode('/', $b); $relativePath = ''; for( $i = 1; $i <= count($b2array)-2; $i++ ) { $relativePath .= $a2array[$i] == $b2array[$i] ? '../' : $b2array[$i].'/'; } return $relativePath; } ?>
有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?
方法1(对于PHP5及更高版本): $readcontents = fopen(“http://www.phpres.com/index.html”, “rb”); $contents = stream_get_contents($readcontents); fclose($readcontents); echo $contents; 方法2: echo file_get_contents(“http://www.phpres.com/index.html”);
写个函数用来对二维数组排序。
function array_sort_by_any_row($array_name, $row_id, $order_type){ $array_temp=array(); foreach($array_name as $key=>$value){ $array_temp[$key]=$value[$row_id]; } if($order_type==="ASC"){ //顺序 asort($array_temp); } else { arsort($array_temp); } $result_array=array(); foreach($array_temp as $key=>$value){ $result_array[$key]=$array_name[$key]; } return $result_array; } $arr = array(array('num'=>5, 'value'=>6), array('num'=>2, 'value'=>39), array('num'=>36, 'value'=>29) ); $sortarr = array_sort_by_any_row($arr, 'num', 'DESC'); print_r($sortarr);
请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确?
<?php $email=$_POST['email']; if(!preg_match(‘/^[\w.]+@([\w.]+)\.[a-z]{2,6}$/i’,$email)) { echo “电子邮件检测失败”; }else{ echo “电子邮件检测成功”; } ?>