一. 字符串操做
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数据库的方法?
- 使用连接(join)代替子查询;
- 使用联合,代替手动创建临时表;
- 使用事物处理;
- 锁定表优化事物处理;
- 使用外键,优化锁定表;
- 建立索引;
- 优化查询语句;
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."<br>";
dir_all("$path/$tmp");
}else{
echo $tmp,"<br>";
}
}
}