PHP函數(shù)參考20-網(wǎng)絡(luò)相關(guān)函數(shù)

原文:
PHP函數(shù)參考20-網(wǎng)絡(luò)相關(guān)函數(shù) - 9ong
PHP函數(shù)參考21-針對(duì)服務(wù)器擴(kuò)展函數(shù) - 9ong

網(wǎng)絡(luò)函數(shù)提供一系列聯(lián)網(wǎng)函數(shù)。

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

  • closelog — 關(guān)閉系統(tǒng)日志鏈接

  • define_syslog_variables — Initializes all syslog related variables

  • dns_check_record — 別名 checkdnsrr

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

    host:主機(jī)(host)可以是一個(gè)IP地址也可以是域名浇垦。

    type:解析記錄類型(type)可能是下面這些類型中的任何一個(gè):A,MX渣锦,NS,SOA浓体,PTR泡挺,CNAME辈讶,AAAA命浴,A6, SRV贱除,NAPTR生闲,TXT 或者 ANY。

  • dns_get_mx — 別名 getmxrr

  • dns_get_record — 獲取指定主機(jī)的DNS記錄

    獲取指定主機(jī)(hostname)的DNS記錄月幌。

  • fsockopen — 打開一個(gè)網(wǎng)絡(luò)連接或者一個(gè)Unix套接字連接

    fsockopen()將返回一個(gè)文件句柄碍讯,之后可以被其他文件類函數(shù)調(diào)用(例如:fgets(),fgetss()扯躺,fwrite()捉兴,fclose()還有feof())蝎困。如果調(diào)用失敗,將返回FALSE倍啥。

  • gethostbyaddr — 獲取指定的IP地址對(duì)應(yīng)的主機(jī)名

  • gethostbyname — 返回主機(jī)名對(duì)應(yīng)的 IPv4地址禾乘。

  • gethostbynamel — 獲取互聯(lián)網(wǎng)主機(jī)名對(duì)應(yīng)的 IPv4 地址列表

  • gethostname — 獲取主機(jī)名

  • getmxrr — 獲取互聯(lián)網(wǎng)主機(jī)名對(duì)應(yīng)的 MX 記錄

  • getprotobyname — Get protocol number associated with protocol name

  • getprotobynumber — Get protocol name associated with protocol number

  • getservbyname — 獲取互聯(lián)網(wǎng)服務(wù)協(xié)議對(duì)應(yīng)的端口

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

  • header_register_callback — 調(diào)用一個(gè) header 函數(shù)

    注冊(cè)一個(gè)函數(shù),在 PHP 開始發(fā)送輸出時(shí)調(diào)用虽缕。

    PHP 準(zhǔn)備好所有響應(yīng)頭始藕,在發(fā)送內(nèi)容之前執(zhí)行 callback,創(chuàng)建了一個(gè)發(fā)送響應(yīng)頭的操作窗口氮趋。

  • header — 發(fā)送原生 HTTP 頭

    header() 用于發(fā)送原生的 HTTP 頭伍派。

    請(qǐng)注意 header() 必須在任何實(shí)際輸出之前調(diào)用,不管是普通的 HTML 標(biāo)簽剩胁,還是文件或 PHP 輸出的空行诉植,空格。這是個(gè)常見的錯(cuò)誤摧冀,在通過include倍踪,require,或者其訪問其他文件里面的函數(shù)的時(shí)候索昂,如果在header()被調(diào)用之前建车,其中有空格或者空行。同樣的問題也存在于單獨(dú)的 PHP/HTML 文件中椒惨。

    //200 正常狀態(tài)  
    header('HTTP/1.1 200 OK');  
    
    // 301 永久重定向缤至,記得在后面要加重定向地址 Location:$url  
    header('HTTP/1.1 301 Moved Permanently');  
    
    // 重定向,其實(shí)就是302 暫時(shí)重定向  
    header('Location: http://www.maiyoule.com/');  
    
    // 設(shè)置頁面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 錯(cuò)誤  
    header('HTTP/1.1 404 Not Found');  
    
    // 500 服務(wù)器錯(cuò)誤  
    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后跳轉(zhuǎn)到http://www.9ong.com';  
    
    // 重寫 X-Powered-By 值  
    header('X-Powered-By: PHP/5.3.0');  
    header('X-Powered-By: Brain/0.6b');  
    
    //設(shè)置上下文語言  
    header('Content-language: en');  
    
    // 設(shè)置頁面最后修改時(shí)間(多用于防緩存)  
    $time = time() - 60; //建議使用filetime函數(shù)來設(shè)置頁面緩存時(shí)間  
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');  
    
    // 設(shè)置內(nèi)容長度  
    header('Content-Length: 39344');  
    
    // 設(shè)置頭文件類型,可以用于流文件或者文件下載  
    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');  
    
    //設(shè)置頁面頭信息  
    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');   
    
    
    //聲明一個(gè)下載的文件
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="testname.zip"');
    header('Content-Transfer-Encoding: binary');
    readfile('test.zip');
    
    
    //對(duì)當(dāng)前文檔禁用緩存
    header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    
    
    
    
    //聲明一個(gè)需要下載的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 — 刪除之前設(shè)置的 HTTP 頭

    刪除之前用 header() 設(shè)置的 HTTP 頭沃暗。

  • headers_list — 返回已發(fā)送的 HTTP 響應(yīng)頭(或準(zhǔn)備發(fā)送的)

    headers_list() 會(huì)返回準(zhǔn)備發(fā)送給瀏覽器/客戶端的 HTTP 頭列表月洛。檢測這些頭是否已經(jīng)發(fā)送,使用 headers_sent()孽锥。

  • headers_sent — 檢測 HTTP 頭是否已經(jīng)發(fā)送

  • http_response_code — 獲取/設(shè)置響應(yīng)的 HTTP 狀態(tài)碼

    如果提供了 response_code嚼黔,將返回先前的狀態(tài)碼。如果未提供 response_code惜辑,會(huì)返回當(dāng)前的狀態(tài)碼唬涧。在 Web 服務(wù)器環(huán)境里,這些狀態(tài)碼的默認(rèn)值都是 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 的字符串互聯(lián)網(wǎng)協(xié)議轉(zhuǎn)換成長整型數(shù)字

  • long2ip — 將長整型轉(zhuǎn)化為字符串形式帶點(diǎn)的互聯(lián)網(wǎng)標(biāo)準(zhǔn)格式地址(IPV4)

  • openlog — Open connection to system logger

  • pfsockopen — 打開一個(gè)持久的網(wǎng)絡(luò)連接或者Unix套接字連接碎节。

    這個(gè)函數(shù)的作用與fsockopen()完全一樣的,不同的地方在于當(dāng)在腳本執(zhí)行完后抵卫,連接一直不會(huì)關(guān)閉狮荔√テ玻可以說它是fsockopen()的長連接版本。

  • setcookie — 發(fā)送 Cookie

    setcookie() 定義了 Cookie殖氏,會(huì)和剩下的 HTTP 頭一起發(fā)送給客戶端创坞。和其他 HTTP 頭一樣,必須在腳本產(chǎn)生任意輸出之前發(fā)送 Cookie(由于協(xié)議的限制)受葛。請(qǐng)?jiān)诋a(chǎn)生任何輸出之前(包括 <html> 和 <head> 或者空格)調(diào)用本函數(shù)题涨。

    一旦設(shè)置 Cookie 后,下次打開頁面時(shí)可以使用 _COOKIE 讀取总滩。 Cookie 值同樣也存在于_REQUEST纲堵。

    參數(shù):

    • name

      Cookie 名稱。
      value
      Cookie 值闰渔。這個(gè)值儲(chǔ)存于用戶的電腦里席函,請(qǐng)勿儲(chǔ)存敏感信息。比如 name 是 'cookiename'冈涧,可通過 $_COOKIE['cookiename'] 獲取它的值茂附。

    • expire

      Cookie 的過期時(shí)間。這是個(gè) Unix 時(shí)間戳督弓,即 Unix 紀(jì)元以來(格林威治時(shí)間 1970 年 1 月 1 日 00:00:00)的秒數(shù)营曼。也就是說,基本可以用 time() 函數(shù)的結(jié)果加上希望過期的秒數(shù)愚隧〉仝澹或者也可以用 mktime()。 time()+606024*30 就是設(shè)置 Cookie 30 天后過期狂塘。如果設(shè)置成零录煤,或者忽略參數(shù), Cookie 會(huì)在會(huì)話結(jié)束時(shí)過期(也就是關(guān)掉瀏覽器時(shí))荞胡。

      expire 使用 Unix 時(shí)間戳而非 Wdy, DD-Mon-YYYYHH:MM:SS GMT 這樣的日期格式妈踊,是因?yàn)?PHP 內(nèi)部作了轉(zhuǎn)換。

- path

    Cookie 有效的服務(wù)器路徑泪漂。設(shè)置成 '/' 時(shí)廊营,Cookie 對(duì)整個(gè)域名 domain 有效。如果設(shè)置成 '/foo/'窖梁, Cookie 僅僅對(duì) domain 中 /foo/ 目錄及其子目錄有效(比如 /foo/bar/)赘风。默認(rèn)值是設(shè)置 Cookie 時(shí)的當(dāng)前目錄夹囚。 

- domain

    Cookie 的有效域名/子域名纵刘。設(shè)置成子域名(例如 'www.example.com'),會(huì)使 Cookie 對(duì)這個(gè)子域名和它的三級(jí)域名有效(例如 w2.www.example.com)荸哟。要讓 Cookie 對(duì)整個(gè)域名有效(包括它的全部子域名)假哎,只要設(shè)置成域名就可以了(這個(gè)例子里是 'example.com')瞬捕。 

    舊版瀏覽器仍然在使用廢棄的 ? RFC 2109,需要一個(gè)前置的點(diǎn) . 來匹配所有子域名舵抹。 

- secure

    設(shè)置這個(gè) Cookie 是否僅僅通過安全的 HTTPS 連接傳給客戶端肪虎。設(shè)置成 TRUE 時(shí),只有安全連接存在時(shí)才會(huì)設(shè)置 Cookie惧蛹。如果是在服務(wù)器端處理這個(gè)需求扇救,程序員需要僅僅在安全連接上發(fā)送此類 Cookie (通過 $_SERVER["HTTPS"] 判斷)。 

- httponly

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

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

  • socket_get_status — 別名 stream_get_meta_data

  • socket_set_blocking — 別名 stream_set_blocking

  • socket_set_timeout — 別名 stream_set_timeout

  • syslog — 生成系統(tǒng)日志消息

    syslog()生成將由系統(tǒng)日志記錄器分發(fā)的日志消息迅诬。

    我們建議使用seaslog擴(kuò)展來記錄日志腋逆。


原文:
PHP函數(shù)參考20-網(wǎng)絡(luò)相關(guān)函數(shù) - 9ong
PHP函數(shù)參考21-針對(duì)服務(wù)器擴(kuò)展函數(shù) - 9ong

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者侈贷。
  • 序言:七十年代末闲礼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子铐维,更是在濱河造成了極大的恐慌柬泽,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫁蛇,死亡現(xiàn)場離奇詭異锨并,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)睬棚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門第煮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抑党,你說我怎么就攤上這事包警。” “怎么了底靠?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵害晦,是天一觀的道長。 經(jīng)常有香客問我暑中,道長壹瘟,這世上最難降的妖魔是什么鲫剿? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮稻轨,結(jié)果婚禮上灵莲,老公的妹妹穿的比我還像新娘。我一直安慰自己殴俱,他們只是感情好政冻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著线欲,像睡著了一般赠幕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上询筏,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天榕堰,我揣著相機(jī)與錄音,去河邊找鬼嫌套。 笑死逆屡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的踱讨。 我是一名探鬼主播魏蔗,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痹筛!你這毒婦竟也來了莺治?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤帚稠,失蹤者是張志新(化名)和其女友劉穎谣旁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滋早,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡榄审,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杆麸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搁进。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖昔头,靈堂內(nèi)的尸體忽然破棺而出饼问,到底是詐尸還是另有隱情,我是刑警寧澤揭斧,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布莱革,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏驮吱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一萧吠、第九天 我趴在偏房一處隱蔽的房頂上張望左冬。 院中可真熱鬧,春花似錦纸型、人聲如沸拇砰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽除破。三九已至,卻和暖如春琼腔,著一層夾襖步出監(jiān)牢的瞬間瑰枫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工丹莲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留光坝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓甥材,卻偏偏與公主長得像盯另,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子洲赵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容