file_get_contents для выполнения http-запроса в том же домене - PullRequest
0 голосов
/ 16 февраля 2012

Я пытаюсь использовать file_get_contents для получения вывода, который браузер получит из другого файла в том же домене.Я перешел на другой сервер, и теперь он всегда получает тайм-аут.Ниже приведен пример того, что я пытаюсь сделать.

index.php

<?php
echo file_get_contents('http://'.$_SERVER['SERVER_NAME'].'/sample.php');
?>

sample.php

<?php
echo 'test';
?>

Есть идеи, что может быть причиной этой проблемы?

РЕДАКТИРОВАТЬ Наш менеджер сервера упомянул что-то о том, что apache не отвечает на localhost, возможно, это звонит?*

Спасибо

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Вы уверены, что URL действительно правильный? Вы пытались использовать $_SERVER ['HTTP_HOST'] вместо этого? На машине, на которой работает PHP, к чему разрешает хост из сгенерированного URL? Ваш веб-сервер (Apache?) Настроен на прослушивание интерфейса localhost?

0 голосов
/ 16 февраля 2012

Вы можете использовать fsockopen, чтобы сделать то же самое, вместе с тем вы можете указать время ожидания

<?php
$fp = fsockopen($_SERVER['SERVER_NAME'], 80, $errno, $errstr, 30/*timeout*/);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET /sample.php HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Проверьте документацию для более подробной информации

http://php.net/manual/en/function.fsockopen.php

...