php笔试题

一. 字符串操做

1. 表单中get和post的区别?

答:get发送HTTP请求是通过url参数传递进行接,而post是实体数据,可以通过表单提交大量数据;

2. 用PHP打印出前一天的时间格式是2006-5-10 22:21:21

答:echo date(“y-m-d H:i:s”,strtotime(“-1 days”));

3. 如何实现字符串翻转?

echo strrev($str);

二. url协议

1. session与cookie的区别?

答:session是存储用户访问的全局唯一变量,存储在服务器上,cookie用来存储连续访问时使用,存储在客户端,两者都可以设置时间长短.

2.HTTP 状态中302、403、 500代码含义?

一二三四五原则,一是消息系列、二成功系列、三是重定向系列、四是请求错误、五是服务器端错误;302是临时转移成功,请求内容易转移到新的位置;403是禁止访问;500服务器内部错误;401代表为授权;

三. 数组操作

四. 数据库操作

1. 优化MYSQL数据库的方法?

  1. 使用连接(join)代替子查询;
  2. 使用联合,代替手动创建临时表;
  3. 使用事物处理;
  4. 锁定表优化事物处理;
  5. 使用外键,优化锁定表;
  6. 建立索引;
  7. 优化查询语句;

2.数据库中的事务是什么?

答:事物是作为一个单元的一组操作,如果组中的所有操作都成功,则认为事物成功,即使一个失败,事物也不成功。如果操作成功则提交,如果事务不成功,则往回滚,该事务的所有操作都取消。

3.MYSQL取得当前时间的函数是?,格式化日期的函数是?

答:new(),date();

4.MyISAM和 InnoDB 的基本区别?索引结构如何实现?

myisam不支持事务表锁,容易产生碎片,要经常优化,读写速度较快;innodb支持事务,行锁,有崩溃回复能力,读写速度较慢;

五. 模版框架

1. 能够使HTML和PHP分离开使用的模板

Smarty/thinkphp/Template

六.其他

1. echo(),print(),print_r()的区别?

Echo 是php中的语句,pringt(),pringt_r();是函数,有返回值,print()只能打印简单类型的变量得值,print_r()可以打印出复杂变量类型的值,echo 输出字符串;

2. 使用哪些工具进行版本控制?

Cvs/git/svn

3. PHP的意思是?

Php是基于服务端来创建动态网站脚本语言。

4。请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?

1.int整数、char定长字符、varchar变长字符、datetime日期时间类型、text文本类型
2.char是固定长度的字符类型,分配多少空间,就占用多长空间。Varchar是可变长度的字符类型,内容有多大就占用多大的空间,能有效节省空间。由于varchar类型是可变的,所以在数据长度改变的时,服务器要进行额外的操作,所以效率比char类型低。

5.echo 1+2+”3+4+5”;

6

七.正则表达式

1.写出一个匹配url的正则表达式

‘/^(https?|ftps?):\/\/(www).([^.\/]+).(com|cn|org)(\/[\w-.\/\?\%\&\=]*)?/i’

八. 函数题

1.实现中文字串截取无乱码的方法

//实现中文字串截取无乱码的函数实现方法
//自带函数是mb_substr()
function GBsubstr($string,$start,$length)
{
    if(strlen($string)>$length){
        $str = null;
        $len = $start+$length;
        for ($i=$start; $i < $len; $i++) { 
            if (ord(substr($string, $i,1))>0xa0) {
                $str = substr($string,$i,2);
                $i++;
            }else{
                $str = substr($string,$i,1);
            }
        }
        return $str;
    }else{
        return $string;
    }
}

2.请写出常见的排序算法,并用PHP实现冒泡排序,将数组$a = array()按照从小到大的方式进行排序。

function mysort($arr)
{
    for ($i=0; $i < count($arr); $i++) { 
        for ($j=0; $j < count($arr)-1-$i; $j++) { 
            if($arr[$j]>$arr[$j+1]){
                $tmp = $arr[$j];
                $arr[$j]=$arr[$j+1];
                $arr[$j+1]=$tmp;
            }
        }
    }
    return $arr;
}

3.把he_llo wo_rld 变成 HeLlo WoRld

$string = "he_llo wo_rld";
$string = ucwords($string);
$length = strlen($string);
for ($i=0; $i < $length; $i++) { 
    if($string{$i}=='_' || $string{$i}==" "){
        $string{$i+1}=strtoupper($string{$i+1});
    }
}
str_replace("_","",$string);
echo $string;

4.写一个遍历指定目录下所有子目录和子文件的函数(提示:可以使用递归的方法)

function dir_all($path)
{
    $handler = opendir($path);
    while (false!==($tmp = readdir($handler))){
        if(is_dir("$path/$tmp")){
            if ($tmp=="." | $tmp=="..") continue;
            echo "dir_".$tmp."
"
; dir_all("$path/$tmp"); }else{ echo $tmp,"
"
; } } }

你可能感兴趣的:(学习记录,PHP,记事本)