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 “电子邮件检测成功”;
}
?>

 

posted on 2016-08-01 20:24  ziyi_ang  阅读(156)  评论(0编辑  收藏  举报

导航