PHP函數參考20-網絡相關函數

原文:
PHP函數參考20-網絡相關函數 - 9ong
PHP函數參考21-針對服務器擴展函數 - 9ong

網絡函數提供一系列聯網函數。

  • checkdnsrr — 給指定的主機(域名)或者IP地址做DNS通信檢查

  • closelog — 關閉系統日志鏈接

  • define_syslog_variables — Initializes all syslog related variables

  • dns_check_record — 別名 checkdnsrr

    根據不同記錄(type)類型查詢主機(host)相應的DNS記錄。

    host:主機(host)可以是一個IP地址也可以是域名。

    type:解析記錄類型(type)可能是下面這些類型中的任何一個:A,MX,NS,SOA,PTR,CNAME,AAAA,A6, SRV,NAPTR,TXT 或者 ANY。

  • dns_get_mx — 別名 getmxrr

  • dns_get_record — 獲取指定主機的DNS記錄

    獲取指定主機(hostname)的DNS記錄。

  • fsockopen — 打開一個網絡連接或者一個Unix套接字連接

    fsockopen()將返回一個文件句柄,之后可以被其他文件類函數調用(例如:fgets(),fgetss(),fwrite(),fclose()還有feof())。如果調用失敗,將返回FALSE。

  • gethostbyaddr — 獲取指定的IP地址對應的主機名

  • gethostbyname — 返回主機名對應的 IPv4地址。

  • gethostbynamel — 獲取互聯網主機名對應的 IPv4 地址列表

  • gethostname — 獲取主機名

  • getmxrr — 獲取互聯網主機名對應的 MX 記錄

  • getprotobyname — Get protocol number associated with protocol name

  • getprotobynumber — Get protocol name associated with protocol number

  • getservbyname — 獲取互聯網服務協議對應的端口

  • getservbyport — Get Internet service which corresponds to port and protocol

  • header_register_callback — 調用一個 header 函數

    注冊一個函數,在 PHP 開始發送輸出時調用。

    PHP 準備好所有響應頭,在發送內容之前執行 callback,創建了一個發送響應頭的操作窗口。

  • header — 發送原生 HTTP 頭

    header() 用于發送原生的 HTTP 頭。

    請注意 header() 必須在任何實際輸出之前調用,不管是普通的 HTML 標簽,還是文件或 PHP 輸出的空行,空格。這是個常見的錯誤,在通過include,require,或者其訪問其他文件里面的函數的時候,如果在header()被調用之前,其中有空格或者空行。同樣的問題也存在于單獨的 PHP/HTML 文件中。

    //200 正常狀態  
    header('HTTP/1.1 200 OK');  
    
    // 301 永久重定向,記得在后面要加重定向地址 Location:$url  
    header('HTTP/1.1 301 Moved Permanently');  
    
    // 重定向,其實就是302 暫時重定向  
    header('Location: http://www.maiyoule.com/');  
    
    // 設置頁面304 沒有修改  
    header('HTTP/1.1 304 Not Modified');  
    
    // 顯示登錄框,  
    header('HTTP/1.1 401 Unauthorized');  
    header('WWW-Authenticate: Basic realm="登錄信息"');  
    echo '顯示的信息!';  
    
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        header('WWW-Authenticate: Basic realm="My Realm1"');
        header('HTTP/1.0 401 Unauthorized');
        echo 'Text to send if user hits Cancel button';
        exit;
    } else {
        echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
        echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
    }
    
    // 403 禁止訪問  
    header('HTTP/1.1 403 Forbidden');  
    
    // 404 錯誤  
    header('HTTP/1.1 404 Not Found');  
    
    // 500 服務器錯誤  
    header('HTTP/1.1 500 Internal Server Error');  
    
    // 3秒后重定向指定地址(也就是刷新到新頁面與 <meta http-equiv="refresh" content="10;http://www.9ong.com/ /> 相同)  
    header('Refresh: 3; url=http://www.9ong.com/');  
    echo '10后跳轉到http://www.9ong.com';  
    
    // 重寫 X-Powered-By 值  
    header('X-Powered-By: PHP/5.3.0');  
    header('X-Powered-By: Brain/0.6b');  
    
    //設置上下文語言  
    header('Content-language: en');  
    
    // 設置頁面最后修改時間(多用于防緩存)  
    $time = time() - 60; //建議使用filetime函數來設置頁面緩存時間  
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');  
    
    // 設置內容長度  
    header('Content-Length: 39344');  
    
    // 設置頭文件類型,可以用于流文件或者文件下載  
    header('Content-Type: application/octet-stream');  
    header('Content-Disposition: attachment; filename="example.zip"');   
    header('Content-Transfer-Encoding: binary');  
    readfile('example.zip');//讀取文件到客戶端  
    
    //禁用頁面緩存  
    header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');  
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');   
    header('Pragma: no-cache');  
    
    //設置頁面頭信息  
    header('Content-Type: text/html; charset=iso-8859-1');  
    header('Content-Type: text/html; charset=utf-8');  
    header('Content-Type: text/plain');   
    header('Content-Type: image/jpeg');   
    header('Content-Type: application/zip');   
    header('Content-Type: application/pdf');   
    header('Content-Type: audio/mpeg');  
    header('Content-Type: application/x-shockwave-flash');   
    
    
    //聲明一個下載的文件
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="testname.zip"');
    header('Content-Transfer-Encoding: binary');
    readfile('test.zip');
    
    
    //對當前文檔禁用緩存
    header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    
    
    
    
    //聲明一個需要下載的xls文件
    header('Content-Disposition: attachment; filename=ithhc.xlsx');
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Length: '.filesize('./test.xls')); 
    header('Content-Transfer-Encoding: binary'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    readfile('./test.xls'); 
    
  • header_remove — 刪除之前設置的 HTTP 頭

    刪除之前用 header() 設置的 HTTP 頭。

  • headers_list — 返回已發送的 HTTP 響應頭(或準備發送的)

    headers_list() 會返回準備發送給瀏覽器/客戶端的 HTTP 頭列表。檢測這些頭是否已經發送,使用 headers_sent()。

  • headers_sent — 檢測 HTTP 頭是否已經發送

  • http_response_code — 獲取/設置響應的 HTTP 狀態碼

    如果提供了 response_code,將返回先前的狀態碼。如果未提供 response_code,會返回當前的狀態碼。在 Web 服務器環境里,這些狀態碼的默認值都是 200。

  • inet_ntop — Converts a packed internet address to a human readable representation

  • inet_pton — Converts a human readable IP address to its packed in_addr representation

  • ip2long — 將 IPV4 的字符串互聯網協議轉換成長整型數字

  • long2ip — 將長整型轉化為字符串形式帶點的互聯網標準格式地址(IPV4)

  • openlog — Open connection to system logger

  • pfsockopen — 打開一個持久的網絡連接或者Unix套接字連接。

    這個函數的作用與fsockopen()完全一樣的,不同的地方在于當在腳本執行完后,連接一直不會關閉。可以說它是fsockopen()的長連接版本。

  • setcookie — 發送 Cookie

    setcookie() 定義了 Cookie,會和剩下的 HTTP 頭一起發送給客戶端。和其他 HTTP 頭一樣,必須在腳本產生任意輸出之前發送 Cookie(由于協議的限制)。請在產生任何輸出之前(包括 <html> 和 <head> 或者空格)調用本函數。

    一旦設置 Cookie 后,下次打開頁面時可以使用 _COOKIE 讀取。 Cookie 值同樣也存在于_REQUEST。

    參數:

    • name

      Cookie 名稱。
      value
      Cookie 值。這個值儲存于用戶的電腦里,請勿儲存敏感信息。比如 name 是 'cookiename',可通過 $_COOKIE['cookiename'] 獲取它的值。

    • expire

      Cookie 的過期時間。這是個 Unix 時間戳,即 Unix 紀元以來(格林威治時間 1970 年 1 月 1 日 00:00:00)的秒數。也就是說,基本可以用 time() 函數的結果加上希望過期的秒數。或者也可以用 mktime()。 time()+606024*30 就是設置 Cookie 30 天后過期。如果設置成零,或者忽略參數, Cookie 會在會話結束時過期(也就是關掉瀏覽器時)。

      expire 使用 Unix 時間戳而非 Wdy, DD-Mon-YYYYHH:MM:SS GMT 這樣的日期格式,是因為 PHP 內部作了轉換。

- path

    Cookie 有效的服務器路徑。設置成 '/' 時,Cookie 對整個域名 domain 有效。如果設置成 '/foo/', Cookie 僅僅對 domain 中 /foo/ 目錄及其子目錄有效(比如 /foo/bar/)。默認值是設置 Cookie 時的當前目錄。 

- domain

    Cookie 的有效域名/子域名。設置成子域名(例如 'www.example.com'),會使 Cookie 對這個子域名和它的三級域名有效(例如 w2.www.example.com)。要讓 Cookie 對整個域名有效(包括它的全部子域名),只要設置成域名就可以了(這個例子里是 'example.com')。 

    舊版瀏覽器仍然在使用廢棄的 ? RFC 2109,需要一個前置的點 . 來匹配所有子域名。 

- secure

    設置這個 Cookie 是否僅僅通過安全的 HTTPS 連接傳給客戶端。設置成 TRUE 時,只有安全連接存在時才會設置 Cookie。如果是在服務器端處理這個需求,程序員需要僅僅在安全連接上發送此類 Cookie (通過 $_SERVER["HTTPS"] 判斷)。 

- httponly

    設置成 TRUE,Cookie 僅可通過 HTTP 協議訪問。這意思就是 Cookie 無法通過類似 JavaScript 這樣的腳本語言訪問。要有效減少 XSS 攻擊時的身份竊取行為,可建議用此設置(雖然不是所有瀏覽器都支持),不過這個說法經常有爭議。 PHP 5.2.0 中添加。 TRUE 或 FALSE 
  • setrawcookie — 發送未經 URL 編碼的 cookie

    setrawcookie() 和 setcookie() 非常相似,唯一不同之處是發送到瀏覽器的 cookie 值沒有自動經過 URL 編碼(urlencode)。

  • socket_get_status — 別名 stream_get_meta_data

  • socket_set_blocking — 別名 stream_set_blocking

  • socket_set_timeout — 別名 stream_set_timeout

  • syslog — 生成系統日志消息

    syslog()生成將由系統日志記錄器分發的日志消息。

    我們建議使用seaslog擴展來記錄日志。


原文:
PHP函數參考20-網絡相關函數 - 9ong
PHP函數參考21-針對服務器擴展函數 - 9ong

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,755評論 2 371

推薦閱讀更多精彩內容