PHP基礎面試題

來源:互聯網
上載者:User

標籤:

  一、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地址

PHP基礎面試題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.