curlリクエストの実行中にランダムな「エラーなしハング」が発生しました。私は起源をWebサーバーとPHPのログとしてエラーを表示しないように検出しようとしているので、私はCURLOT_STDERR
を有効にしようとしました。curl windows:提供されたファイルハンドルが書き込み可能ではありません
私は次のコードを持っている:
$file = 'curl.txt';
$curl = curl_init();
$curl_log = fopen($file, 'rw');
var_export(is_writable($file));
$url = 'http://www.google.com';
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_VERBOSE => 1,
CURLOPT_STDERR => $curl_log,
CURLOPT_RETURNTRANSFER => 1
));
$response = curl_exec($curl);
rewind($curl_log);
$output= fread($curl_log, 2048);
echo '<pre>'. print_r($output, 1). '</pre>';
fclose($curl_log);
is_writable
戻り真のが、カール実行は次のエラーで死ぬ:
curl_setopt_array(): the provided file handle is not writable
私はWindows上でPHP 7.0.15高速CGIを実行していますよ機械。
CURLユーザーに書き込み権限がないようですが、他のPHP関数を使用してそのファイルに書き込むことができます。
'if(!$ curl_log){ throw new \ RuntimeException( 'fopen failed'); } var_dump($ curl_log); ' – hanshenrik
こんにちは、fopenが動作し、有効なファイルリソースを返します。 – urantiana
'var_dump(fwrite($ curl_log、 'test'));'? int(4)を返す必要があります。 – hanshenrik