int fsockopen(string hostname, int port, int [errno], string [errstr]);hostname のポートport 上にインターネットドメインソケット接続をオープンしファイルポインタを 返します。このファイルポインタは、 fgets(),fgetss(), fputs(), fclose() で使用可能です。 呼び出しに失敗すると FALSE が返され、オプションの errnoおよびerrstr 引数が指定されている場合、システムレベル の connect() コールで生じた 実際のシステムレベルエラーを示すように設定されます。 errno は 0 なのに、返り値がFALSEであれば、connect()の呼び出しの前に エラーが発生したことを示します。この場合、おそらくはソケットの初期化に 原因があります。引数 errno および errstr は参照渡しでなければならない ことに注意してください。
portが0で、オペレーティングシステムが UNIXドメインソケットをサポートしていれば、 hostnameは接続するUNIXドメインソケットの ファイル名が使用されます。
ソケットはデフォルトでブロックモードで開かれます。 set_socket_blocking()を使用して、 非ブロックモードに切換えることができます。
Example 1. fsockopen の例 $fp = fsockopen("www.php.net", 80, &$errno, &$errstr);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
|