1

私はこのラッパーを試しています。特に、HTTP リクエストから生データを取得しています。cURLについて:

Protocol php not supported or disabled in libcurl

私のphpinfoを調べたところ、これがサポートされているものです:

dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp 

PHP で (可能であればこのラッパーを使用して) 任意のリクエストから生データを取得する方法はありますか (構成ファイルを介してそのリストに php を追加する必要はありません)。

4

2 に答える 2

0

PHP DOC には大きな違いがあることは明らかでありhttp://php://あなたの質問は、なぜchrome://動作しないのかを尋ねるようなものですfirefox

PHP は、PHP 自身の入力および出力ストリーム、標準入力、出力、およびエラー ファイル記述子、インメモリおよびディスク バックアップの一時ファイル ストリーム、および他のファイル リソースを操作できるフィルタへのアクセスを可能にするさまざまな I/O ストリームを提供します。それらが読み書きされるとき。

php://stdin, php://stdout and php://stderr

php://stdin、php://stdout、および php://stderr を使用すると、PHP プロセスの対応する入力ストリームまたは出力ストリームに直接アクセスできます。ストリームは重複したファイル記述子を参照するため、php://stdin を開いて後で閉じると、記述子のコピーのみが閉じられます。STDIN によって参照される実際のストリームは影響を受けません。PHP は、PHP 5.2.1 まで、この点でバグのある動作を示していたことに注意してください。これらのラッパーを使用して手動でストリームを開く代わりに、定数 STDIN、STDOUT、および STDERR を使用することをお勧めします。

代表的な使い方はこちら

$temp = fopen("php://temp", "r+");

$curl = curl_init("__YOUR__URL");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FILE, $temp);
curl_exec($curl);
curl_close($curl);

fseek($temp, 0);
while(! feof($temp)) {
    echo fgets($temp);
}
fclose($temp);
于 2013-05-22T12:14:21.480 に答える
0

おそらく使用する方が良いでしょう:

$data = file_get_contents("php://input");

cURL は新しい接続を行うため、リクエストとともに送信されたデータにアクセスできない場合があります。

于 2013-05-22T11:51:07.877 に答える