1、PHP中幾個輸入函數echo, print(), print_r(), printf(), sprintf(), var_dump()的區別。php
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處理後的值;cookie
4.printf() :是函數 把文字格式化後輸出,參考C語言session
5.sprintf() : 是函數, 跟printf()類似,但不打印,而是返回格式化的文字(該函數把格式化的字符串寫入一個變量,而不是輸出出來)其餘的與printf同樣;curl
6.var_dump() :是函數,輸出變量的內容、類型或字符串的內容、類型、長度。函數
2、禁用cookie的session的使用方案,設置session過時的方法、對應函數:post
1.經過url傳值,把session id附加到url上(缺點:整個站點中不能有純靜態頁面,由於純靜態頁面session id 將沒法繼續傳遞到下一個頁面);編碼
2.經過隱藏表單,把session id放到表單的隱藏文本框中同表單一塊提交過去(缺點:不適用<a>標籤這種直接跳轉的非表單的狀況);url
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
3、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擴展
4、isset() 、empty()與is_null的區別
一、當變量未定義時,is_null()和「參數自己」是不容許做爲參數判斷的,會報Notice警告錯誤;
二、empty,isset首先都會檢查變量是否存在,而後對變量值進行檢測。而is_null 和 「參數自己」只是直接檢查變量值,是否爲null,所以若是變量未定義就會出現錯誤!
三、isset():僅當null和未定義,返回false;
四、empty():""、0、"0"、NULL、FALSE、array(),未定義,均返回false;
五、is_null():僅判斷是否爲null,未定義 報警告;
六、變量自己做爲參數,與empty()一致,但接受未定義變量時,報警告;
5、strlen()與mb_strlen的做用與區別
在PHP中,strlen與mb_strlen是求字符串長度的函數
$_SERVER['REMOTE_ADDR'] ; 經過全局數組來得到
getenv('REMOTE_ADDR') ; 經過環境變量來得到
當客戶機使用代理的時候獲取不到真實的IP地址