Xpoint
   [напомнить пароль]

fopen не открывает локальную страницу по http://

Метки: [без меток]
2013-10-26 17:42:05 [обр] win_pup[досье]

Здравствуйте!

ОС: Windows 7 Prof
Веб-сервер: nginx/1.2.7, PHP 5.3.23

Имеется некий php-файл print_order.php, результат выполнения которого мне нужно вывести в поток браузера.

Для получения содержимого использую fopen()

Если я его открываю как

fopen($_SERVER['DOCUMENT_ROOT'].'/print_order.php','r');

то файл открывается как текстовый, со всем его содержимым, без выполнения php-кода. Т.е., ошибок никаких нет.

Но, если я пытаюсь его открыть как

fopen('http://'.$_SERVER['HTTP_HOST'].'/print_order.php','r');

то получаю висяк, завершающийся ошибкой "504 Gateway Time-out".

Дабы удостоверится в том, что fopen всё же работает по протоколу http, в качестве первого параметра указываю 'http://ya.ru/' - запрос выполняется успешно. Я получаю краткую форму поиска Яндекс.

Чтобы исключить возможность ошибки в самом print_order.php при его выполнении, пробуем открыть его, прописав http://localhost/print_order.php в адресную строку браузера. Результат - ОК.

Также была попытка использовать:

$fp=fsockopen($_SERVER['HTTP_HOST'],80,$errno,$errstr,30);
fputs ($fp, "GET /print_order.php HTTP/1.1\r\r");
while (!feof($fp)) {
  $contents.=fgets ($fp,128);
}
fclose ($fp);
echo $contents;

В этом случае в ответ я получаю ошибку "400 Bad Request". А если быть точным, то я получаю текст этой ошибки в переменной $contents.

Firewall отключен, и даже nginx.exe на всякий случай добавлен в него как исключение.

В чём может быть загвоздка? По какой причине nginx не может открыть локальный php-файл по http?

спустя 14 часов [обр] Филипп Ткачев(7/115)[досье]
Скорее всего у вас конфигурация с виртуальными хостами. Думаю, что не хватает заголовков в запросе.
спустя 2 дня 10 часов [обр] Jared(0/26)[досье]

win_pup[досье], включаете буфферизацию вывода, подключаете файл через include.

ob_start();
include('print_order.php');
$print_order_output = ob_get_contents();
ob_end_clean();

Костыли с fopen не нужны.

спустя 1 день 17 часов [обр] win_pup[досье]
Jared[досье], в общем-то, как вариант, согласен. Спасибо!
Powered by POEM™ Engine Copyright © 2002-2005