程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP基礎面試題,php基礎試題

PHP基礎面試題,php基礎試題

編輯:關於PHP編程

PHP基礎面試題,php基礎試題


  一、PHP中幾個輸入函數echo, print(), print_r(), printf(), sprintf(), var_dump()的區別。

    1.echo : 是語句不是函數,沒有返回值,可輸出多個變量值,不需要圓括號。不能輸出數組和對象,只能打印簡單類型(如int,string);

    2.print : 是語句不是函數, 有返回值1,只能輸出一個變量, 不一定需要圓括號,不能輸出數組和對象,只能打印簡單類型(如int,string);

    3.print_r() :是函數, 可打印復合類型 (如string, int, float, array, object等)輸出array時會用結構表示,而且可通過print_r($str,true)來使print_r()不輸出而返回print_r處理後的值;

    4.printf() :是函數 把文字格式化後輸出,參考C語言

    5.sprintf() : 是函數, 跟printf()相似,但不打印,而是返回格式化的文字(該函數把格式化的字符串寫入一個變量,而不是輸出出來)其他的與printf一樣;

    6.var_dump() :是函數,輸出變量的內容、類型或字符串的內容、類型、長度。

  二、禁用cookie的session的使用方案,設置session過期的方法、對應函數:

    1.通過url傳值,把session id附加到url上(缺點:整個站點中不能有純靜態頁面,因為純靜態頁面session id 將無法繼續傳遞到下一個頁面);

    2.通過隱藏表單,把session id放到表單的隱藏文本框中同表單一塊提交過去(缺點:不適用<a>標簽這種直接跳轉的非表單的情況);

    3.直接配置php.ini文件, 將php.ini文件裡的session.use.trans.sid = 0 設為 1;

    4.用文件、數據庫等形式保存session ID,在跨頁過程中手動調用;

    1.setCookie(session_name(),session_id(),time()+60,"/");

    2.session_set_cookie_params(60);(把session存入cookie中);

    注意:php.ini 中的session.gc_probability / session.gc_divisor

  三、PHP獲取文件內容的方法,對應的函數

    1.file_get_contents()  得到文件的內容(可以以get和post方法獲取),整個文件讀入一個字符串中;

    2.用fopen() 打開url, 以get 方式獲取內容(借助fgets()函數);

    3.用fsockopen函數 打開url (可以以get 和 post 方式獲取)以get方式獲取完整的數據  包括header 和 body;

    4.使用curl 庫獲取內容,使用curl庫之前,需查看php.ini,查看是否已打開了curl擴展

  四、isset() 、empty()與is_null的區別

    1、當變量未定義時,is_null()和“參數本身”是不允許作為參數判斷的,會報Notice警告錯誤;

    2、empty,isset首先都會檢查變量是否存在,然後對變量值進行檢測。而is_null 和 “參數本身”只是直接檢查變量值,是否為null,因此如果變量未定義就會出現錯誤!

    3、isset():僅當null和未定義,返回false;

    4、empty():""、0、"0"、NULL、FALSE、array(),未定義,均返回false;

    5、is_null():僅判斷是否為null,未定義 報警告;

    6、變量本身作為參數,與empty()一致,但接受未定義變量時,報警告;

  五、strlen()與mb_strlen的作用與區別

    在PHP中,strlen與mb_strlen是求字符串長度的函數

    PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數。對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍(在 UTF-8編碼下,一個漢字占3個字節)。      采用mb_strlen函數可以較好地解決這個問題。mb_strlen的用法和strlen類似,只不過它有第二個可選參數用於指定字符編碼。例如得到UTF-8的字符串$str長度,可以用 mb_strlen($str,'UTF-8')。如果省略第二個參數,則會使用PHP的內部編碼。內部編碼可以通過 mb_internal_encoding()函數得到。         需要注意的是,mb_strlen並不是PHP核心函數,使用前需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在並且沒有被注釋掉,否則會出現未定義函 數的問題。     六、PHP 如何獲取客戶端的IP地址

    $_SERVER['REMOTE_ADDR'] ;   通過全局數組來獲得 

    getenv('REMOTE_ADDR') ; 通過環境變量來獲得

    當客戶機使用代理的時候獲取不到真實的IP地址

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved