HTTP プロトコルは、Web アプリケーションで最も重要なプロトコルの 1 つであり、単純な要求応答モデルを使用してデータを取得および送信します。人気のある Web 開発言語として、PHP は開発者が Web サーバーと対話するのに役立つ多くの HTTP サーバー要求関数を提供します。この記事では、PHPのHTTPサーバーリクエスト機能について詳しく紹介します。
file_get_contents() 関数は、リモート サーバーからデータを取得するための PHP で最も一般的な関数です。HTTP、HTTPS、FTP、 SFTP、SCP、ファイルストリームなどのデータストリームを文字列に変換します。さらに、この関数は、HTTP リクエスト ヘッダー、リクエスト タイムアウトなどを設定するためのオプションのパラメーターも提供します。
例:
$url = 'http://www.example.com'; $response = file_get_contents($url, false, stream_context_create([ 'http' => [ 'method' => 'GET', 'header' => 'Authorization: Bearer ' . $access_token ] ])); echo $response;
curl_exec() 関数は、リモート サーバーからデータを取得するためによく使用されるもう 1 つの PHP 関数です。ネットワーク通信を実装するための libcurl ライブラリ。 file_get_contents() 関数と比較して、curl_exec() 関数は、より多くのプロトコル サポートと、複数の同時リクエスト、リクエストのリダイレクトなどの高度な機能を提供します。
例:
$url = 'http://www.example.com'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $access_token]); $response = curl_exec($ch); curl_close($ch); echo $response;
stream_socket_client() 関数は、TCP/IP または UNIX ドメイン データ ストリーム ソケットを作成し、接続することができます。指定されたリモートサーバー。 curl_exec() 関数や file_get_contents() 関数とは異なり、stream_socket_client() 関数はより低レベルの関数を提供し、よりきめ細かい方法で HTTP リクエストを制御できます。
例:
$url = 'http://www.example.com'; $host = parse_url($url, PHP_URL_HOST); $port = 80; $path = parse_url($url, PHP_URL_PATH); $query = parse_url($url, PHP_URL_QUERY); $query = $query ? '?' . $query : ''; $request = "GET $path$query HTTP/1.1 " . "Host: $host " . "Authorization: Bearer $access_token " . "Connection: Close "; $socket = stream_socket_client('tcp://' . $host . ':' . $port, $errno, $errstr, 30); fwrite($socket, $request); $response = ''; while (!feof($socket)) { $response .= fgets($socket, 4096); } fclose($socket); echo substr($response, strpos($response, " ") + 4);
この記事では、PHP で一般的に使用される HTTP サーバー要求関数 file_get_contents()、curl_exec()、および stream_socket_client() 関数を紹介し、関連する例を示します。さまざまな実際のニーズに応じて、適切なリクエスト関数を選択し、対応するパラメーターやオプションと組み合わせて使用して、Web アプリケーションをより効率的かつ安定させます。
以上がPHP HTTPサーバーリクエスト機能の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。