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."<br>";
            dir_all("$path/$tmp");
        }else{
            echo $tmp,"<br>";
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章