file_get_contents () GET-запрос не отображается в журнале моего веб-сервера - PullRequest
0 голосов
/ 01 ноября 2009

У меня есть простой скрипт php для проверки связи с некоторыми из моих доменов с помощью file_get_contents (), однако я проверил свои журналы, и они не записывают никаких запросов get.

У меня есть

$result = file_get_contents($url);
echo $url. ' pinged ok\n';

, где $ url для каждого из доменов - это простая строка вида http://mydomain.com/,. Эхо подтверждает это. Ручные запросы, сделанные мной, показывают.

Почему запросы get не отображаются в моих журналах?

На самом деле у меня есть его, чтобы зарегистрировать попадание, когда я отправляю $ result в браузер. Я думаю, это означает, что веб-сервер только записывает запросы браузера? Есть ли способ имитировать такие в php?

ок, попробовал curl php:

// create curl resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, "getcorporate.co.nr");

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
$output = curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);   

тот же эффект - в журналах не зарегистрировано ни одного попадания. Пока что он регистрируется только когда я возвращаю http-ответ из моего скрипта в браузер. Очевидно, что это будет работать только для одного запроса, а не для группы, как цель моего сценария.

Если что-то не так, на какие выходные данные отладки я могу посмотреть?

Редактировать: Д'Ох! См. Комментарии ниже принятого ответа для объяснения моего ошибочного мышления.

Ответы [ 3 ]

2 голосов
/ 01 ноября 2009

Если запрос действительно выполняется, он будет в журналах.

Ваш пример кода может молчать.

Что произойдет, если вы сделаете:

<?PHP
if ($result = file_get_contents($url)){
    echo "Success"; 
}else{
    echo "Epic Fail!";
}

Если это не помогло, вы захотите включить некоторые отчеты об ошибках или ведение журнала и попытаться выяснить, почему.

Примечание: если вы находитесь в безопасном режиме или иным образом отключили упаковщики URL-адресов fopen , file_get_contents () не будет получать удаленную страницу. Это наиболее вероятная причина, по которой все может закончиться неудачей (при условии, что в содержимом $ url нет опечатки).

0 голосов
/ 01 ноября 2009

Странно. Может быть, есть какое-то кеширование в движении? Вы пытались изменить URL-адрес динамически (например, $ url = $ url. "? Timestamp =". Time ())?

0 голосов
/ 01 ноября 2009

Использовать вместо этого curl?

...