PHP面試題 – 培訓學校真實面試內部資料

  1.PHP解析URL是哪一個函數?

  parse_url() 是講URL解析成有固定鍵值的數組的函數。php

$ua=parse_url('http://username:password@hostname/path?arg=value#anchor');
print_r($ua);

   結果:mysql

Array(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

   2.什麼是smarty? Smarty的優勢是什麼?

  Smarty是一個使用PHP寫出來的PHP模板引擎,目的是要使用PHP程序同美工分離,使的程序員改變程序的邏輯內容時不會影響到美工的頁面設計,美工從新修改頁面時不會影響到程序的程序邏輯,這在多人合做的項目中顯的尤其重要。(也易於程序的多樣式開發)程序員

  Smarty優勢:sql

  1. 速度快:相對其餘模板引擎。 數據庫

  2. 編譯型:採用smarty編寫的程序在運行時要編譯成一個非模板技術的PHP文件。數組

  3 .緩存技術:它能夠將用戶最終看到的HTML文件緩存成一個靜態的HTML頁。瀏覽器

  4. 插件技術:smarty能夠自定義插件。緩存

  不適合使用smarty的地方:cookie

  1. 須要實時更新的內容。例如像股票顯示,它須要常常對數據進行更新 。session

  2. 小項目。小項目由於項目簡單而美工與程序員兼於一人的項目。

  3.如何配置、使用和清除Smarty緩存

  一、Smarty緩存的配置

  $smarty->cache_dir = 「/caches/」; //緩存目錄

  $smarty->caching = true; //開啓緩存,爲flase的時侯緩存無效

  $smarty->cache_lifetime = 60; //緩存時間

  二、Smarty緩存的使用和清除

  $smarty->display(‘cache.tpl’, cache_id); //建立帶ID的緩存

  $smarty->clear_all_cache(); //清除全部緩存

  $smarty->clear_cache(‘index.htm’); //清除index.tpl的緩存

  $smarty->clear_cache(‘index.htm’,cache_id); //清除指定id的緩存

  4.介紹一下Cookie和Session及他們之間的區別

  在很是多時候,咱們須要跟蹤瀏覽者在整個網站的活動,對他們身份進行自動或半自動的識別(也就是平時常說的網站登錄之類的功能),這時候,咱們常採用Cookie與 Session來跟蹤和判斷。

  區別:

  Session信息是存放在server端,但session id是存放在client cookie的,固然php的session存放方法是多樣化的,這樣就算禁用cookie同樣能夠跟蹤Cookie是徹底保持在客戶端的如:IE firefox 當客戶端禁止cookie時將不能再使用

  使用Cookie的限制:

  一、必須在HTML文件的內容輸出以前設置;

  二、不一樣的瀏覽器對Cookie的處理不一致,且有時會出現錯誤的結果。

  三、限制是在客戶端的。一個瀏覽器能建立的Cookie數量最多爲30個,而且每一個不能超過4KB,每一個WEB站點能設置的Cookie總數不能超過20個。

  5.PHP開發的通常流程

  一、儘可能完整的需求方案,具體到每一個功能點上

  二、建模結構UML,經過UML工具創建專業的模或本身畫一個簡單的關係圖。

  三、創建數據庫

    1)、創建的表名、字段名要與他的功能有關係英文很差的拼音一樣能夠

    2)、根據結構創建數據庫表,原則是不定項內容必定要分表。

    3)、字段類型要考慮內容是否夠用就好,選擇適合的類型 INT Varchar Date

  四、設計HTML文件和腳本的實現

  根據模和數據庫來設計頁面是個很科學的方法,固然有的時候有人喜歡根據模型設計頁面,數據庫基於頁面設計,都是能夠的。設計頁面時要考慮到每一個細節,包括提示消息頁面,錯誤頁面。

  五、PHP代碼的書寫

    1)、先創建底層結構和文件夾(若是是大型的網站一樣設計一個文件UML

    2)、基礎功能分類關聯,以便從此代碼引用。

    3)、代碼的書寫,注意簡潔性和函數的使用,內部函數能實現的儘可能用內部函數

    4)、在部分關鍵位置加以代碼註釋。

  六、程序的測試和修正

    1)、對於發現的BUG不能就解決BUG而解決,要處於完整程序考慮。避免收之東隅失之桑榆。

    2)、對於解決過的BUG已經要詳細記錄,以便往後更新。

  6.PHP如何對用戶密碼進行加密

  md5() sha1()

  7.mysql_pconnect()和mysql_connect()有什麼區別

  二者的區別主要有兩個:
  1. 在進行數據庫鏈接時,函數會先找同一個host, 用戶和密碼的persistent(持續的)的連接,若是能找到,則使用這個連接而不返回一個新的連接。
  2. mysql_pconnect()建立的數據庫鏈接在腳本執行完畢後仍然保留,能夠被後來的代碼繼續使用,mysql_close()函數也不會關閉mysql_pconnect()建立的連接。

  8.請說明 PHP 中傳值與傳引用的區別。何時傳值何時傳引用?

  答: 傳值只是把某一個變量的值傳給了另外一個變量,而引用則說明二者指向了同一個地方。

  9. 在PHP中error_reporting這個函數有什麼做用?  

  答: The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script.

相關文章
相關標籤/搜索