fsockopen()函數(shù)打開一個網(wǎng)絡(luò)連接或者一個Unix套接字連接。
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
它用于打開Internet或Unix域套接字連接。
初始化一個套接字連接到指定主機(hostname)。
PHP支持以下的套接字傳輸器類型列表 所支持的套接字傳輸器(Socket Transports)列表。也可以通過stream_get_transports()來獲取套接字傳輸器支持類型。
默認(rèn)情況下將以阻塞模式開啟套接字連接。當(dāng)然你可以通過stream_set_blocking()將它轉(zhuǎn)換到非阻塞模式。
stream_socket_client()與之非常相似,而且提供了更加豐富的參數(shù)設(shè)置,包括非阻塞模式和提供上下文的的設(shè)置。
fsockopen()將返回一個文件句柄,之后可以被其他文件類函數(shù)調(diào)用(例如:fgets(),fgetss(),fwrite(),fclose()還有feof())。如果調(diào)用失敗,將返回FALSE。
注意:如果主機(hostname)不可訪問,將會拋出一個警告級別(E_WARNING)的錯誤提示。
序號 | 參數(shù)和說明 |
---|---|
1 | hostname 如果安裝了OpenSSL,那么你也許應(yīng)該在你的主機名地址前面添加訪問協(xié)議ssl://或者是tls://,從而可以使用基于TCP/IP協(xié)議的SSL或者TLS的客戶端連接到遠(yuǎn)程主機。 |
2 | port 端口號。如果對該參數(shù)傳一個-1,則表示不使用端口,例如unix://。 |
3 | errno 保存系統(tǒng)級connect()調(diào)用中發(fā)生的系統(tǒng)級錯誤號 |
4 | errstr 錯誤信息將以字符串的信息返回。 |
5 | timeout 設(shè)置連接的時限,單位為秒。 |
試試下面的實例
<?php $connection = fsockopen("www.soo66.com", 80, $errno, $errstr, 30); if (!$connection) { echo "$errstr ($errno) \n"; }else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.soo66.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($connection, $out); while (!feof($connection)) { echo fgets($connection, 128); } fclose($connection); } ?>
上面的示例打開連接