2017-02-02 2 views
0

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関数を使用してそのファイルに書き込むことができます。

+0

'if(!$ curl_log){ throw new \ RuntimeException( 'fopen failed'); } var_dump($ curl_log); ' – hanshenrik

+0

こんにちは、fopenが動作し、有効なファイルリソースを返します。 – urantiana

+0

'var_dump(fwrite($ curl_log、 'test'));'? int(4)を返す必要があります。 – hanshenrik

答えて

1

ご協力いただきありがとうございますhanshenrik。

var_dump(fwrite($curl_log,'test'));は、だから私は$curl_log = fopen($file, 'a');にライン$curl_log = fopen($file, 'rw');を変更し、問題が解決0

を返しました。

関連する問題