Какая это может быть настройка сервера, что не отдаёт свои же файлы по запросу с url ? Например, команда, выполняющаяся на сервере http://www.example.com, Код (PHP): file_get_contents("http://www.example.com/digit.txt") выдаёт ошибку: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found, когда тот же запрос в браузере открывает этот файл: http://www.example.com/digit.txt, то есть файл существует. И другой адрес открывается, например, file_get_contents("http://www.yandex.ru"); - открывается, а свой - Код (PHP): file_get_contents("http://www.example.com/digit.txt"); - не открывается. В файле .htaccess: Код (PHP): php_flag allow_url_fopen on php_flag allow_url_include off Причём на других серверах file_get_contents отдаёт свои файлы. Подскажите, пожалуйста, хоть в каком направлении смотреть, всю голову уже сломали... :-( PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Re: Ф-ия file_get_contents($url) не видит файлы на своём сер фактический код можно увидеть? там точно работа с файловой системой сервера а не стриммер?
Re: Ф-ия file_get_contents($url) не видит файлы на своём сер зачем со своего сервера файлы по http тянуть?
http://www.landkit.ru/digit.txt - существует - в броузере видим. <a class="postlink" href="http://www.landkit.ru/test.php">http://www.landkit.ru/test.php</a> - запускаем - ответ: Warning: file_get_contents(http://www.landkit.ru/digit.txt) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/landkit/domains/landkit.ru/public_html/test.php on line 2 test.php: Код (PHP): <?php echo file_get_contents("http://www.landkit.ru/digit.txt"); ?> Почему "HTTP/1.1 404 Not Found" - когда этот файл есть??? PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Re: Ф-ия file_get_contents($url) не видит файлы на своём сер ага, то есть локальный файл зачем-то читается через лишний запрос по протоколу гипертекста. что мешает файл из файловой системы прочитать?
Re: Ф-ия file_get_contents($url) не видит файлы на своём сер Это нужно для целей проверки, на разрешённом ли сервере запускается скрипт. Создаём временный файлик, потом обращаемся к нему через $_SERVER["SERVER_NAME"] - то есть по url - если он открывается - то значит, файлик создан именно на том сервере, чей домен в переменной $_SERVER["SERVER_NAME"] (задача была этой переменной не доверять, а проверить другим способом) Этот алгоритм прекрасно работает на других серверах. Вот нашёлся один ... который не отдаёт свои файлы по url.. Подскажите по сути вопроса - почему?
Файл 01.txt с числом 777 внутри и скрипт test.php Код (PHP): echo file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/01.txt") . "<br>"; echo file_get_contents("http://" . $_SERVER["SERVER_NAME"] . "/01.txt") . "<br>"; кладу на один сервер, запускаю, получаю: Код (PHP): 777 777 и те же файлы 01.txt и test.php кладу на другой сервер и запускаю, получаю: Код (PHP): 777 Warning: file_get_contents(http://www.landkit.ru/01.txt) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/landkit/domains/landkit.ru/public_html/test.php on line 26 Посоветовали обратить внимание на директивы open_basedir, allow_url_fopen - с ними всё нормально. Советовали такое: - "На хостинге - доноре что то не отдает, если нет хидеров браузера." - "значит из-за пустого реферера. (mod_rewrite)" Немного непонятно, как проверить эти два совета... PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]