ホームページ  >  記事  >  バックエンド開発  >  PHP 関数の概要 - fsockopen(): ネットワーク接続を開く

PHP 関数の概要 - fsockopen(): ネットワーク接続を開く

PHPz
PHPzオリジナル
2023-07-24 21:49:081899ブラウズ

PHP 関数の紹介 - fsockopen(): ネットワーク接続を開く

fsockopen() 関数は、ネットワーク接続を開くために使用される PHP のメソッドです。これにより、TCP/IP プロトコル経由でリモート サーバーと通信し、リクエストを送信し、応答を取得することができます。この記事では、fsockopen() 関数を詳しく紹介し、読者がこの関数を理解して使用できるようにコード例を提供します。

  1. 関数構文:
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
  1. 関数パラメーター:
  2. $hostname: 接続するターゲット ホスト アドレス (IP にすることもできます)アドレスまたはドメイン名。
  3. $port: オプションのパラメーター。接続先のターゲット ホストのポート番号を指定します。デフォルト値は -1 で、デフォルトのポート番号を使用することを意味します。

以下はオプションのパラメーターです (一般的には使用されません):

  • &$errno: 接続が失敗した場合、参照される変数にエラー コードを設定します。
  • &$errstr: 接続が失敗した場合、参照される変数をエラー メッセージに設定します。
  • $timeout: オプションのパラメーター。接続タイムアウトを秒単位で指定します。デフォルト値は ini_get("default_socket_timeout") で、PHP 設定で設定されたソケット タイムアウトがデフォルトになります。
  1. 関数の戻り値:
  2. 成功すると、接続情報を含むリソース ハンドルが返され、他の関数で使用できます。
  3. 失敗した場合は false を返します。
  4. 関数の使用例:

次は、fsockopen() 関数を使用してリモート Web サイトのコンテンツを取得する例です:

<?php
// 定义目标服务器地址和端口号
$hostname = 'www.example.com';
$port = 80;

// 打开一个网络连接
$fp = fsockopen($hostname, $port, $errno, $errstr, 10);

// 连接失败时输出错误信息
if (!$fp) {
    echo "Connection failed: $errno - $errstr";
    exit;
}

// 发送 HTTP 请求头
$request = "GET / HTTP/1.1
";
$request .= "Host: $hostname
";
$request .= "Connection: close

";
fwrite($fp, $request);

// 读取响应并输出
while (!feof($fp)) {
    echo fgets($fp, 128);
}

// 关闭连接
fclose($fp);
?>

上記コードは fsockopen() 関数によって作成されます。ターゲット サーバーへの接続が確立され、単純な HTTP GET リクエストが送信され、応答が読み取られます。この例では、指定したホストは www.example.com で、ポートは 80 (HTTP プロトコルのデフォルト ポート) です。 Host フィールドと Connection フィールドがリクエスト ヘッダーに設定され、リクエストは fwrite() 関数を通じてサーバーに送信されます。最後に、応答は fgets() 関数を通じて継続的に読み取られ、echo を通じて出力されます。

SSL 暗号化接続を開きたい場合は、ホスト名のプレフィックスとして「ssl://」を使用し、適切なポート番号 (通常は 443) を指定できることに注意してください。

概要:
fsockopen() 関数は、ネットワーク接続を開くための PHP の強力なツールです。これにより、リモートサーバーと通信し、リクエストを送信し、応答を取得することができます。この記事では、fsockopen() 関数の構文とパラメーターを紹介し、その使用方法を示すサンプル コードを提供します。 fsockopen() 関数をマスターして柔軟に使用することで、ネットワーク通信をより適切に処理および管理できるようになります。

以上がPHP 関数の概要 - fsockopen(): ネットワーク接続を開くの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。