2017-02-02 3 views
0

У меня случайный «зависает без ошибок» при выполнении запросов на завивки. Я пытаюсь обнаружить происхождение, поскольку веб-сервер и 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

Я бегу PHP 7.0.15 Fast CGI на Windows, Машина.

Кажется, у пользователя 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')); возвращается 0.

Так что я изменил линию $curl_log = fopen($file, 'rw'); к $curl_log = fopen($file, 'a'); и решаемой задачи.

Смежные вопросы