![]() |
PHP - странное поведение функции file_get_contents... Запускаем страницу [url]http://www.landkit.ru/index.php[/url] получаем сообщение: Warning: file_get_contents([url]http://www.landkit.ru/item.php[/url]) [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/index.php on line 63 когда файл item.php - существует! В доказательство копируем адрес из функции file_get_contents и вручную запускаем в броузере - [url]http://www.landkit.ru/item.php[/url] Видим ответ! Как такое может быть? Права? Уже все права на файлы делали и 777, потом все 755... Есть какие-нибудь соображения??? |
что в параметрах? |
Если Вы пытаетесь читать файл, то желательно его в начале Открыть. $fp = fopen(item.php, "r"); |
2-AlexIT >для этой функции это не нужно Все таки права, больше нечему. |
Хостеру напишите |
И еще, заголовок 404 может формировать скрипт подгружаемый, проверяя например наличие нужных headers и понимая, что это не браузер. |
Ну во первых не понятно для чего вставлять в функцию URL если файл лежит там же. Достаточно просто указать имя файла А уж если Вставили то для начала надо бы указать Обработчик протокола. file_get_contents() - Для этой функции можно использовать URL в качестве имени файла, если была включена опция "fopen wrappers". [url]http://www.php.su/functions/?file-get-contents[/url] fopen() - Закрепляет именованый ресурс, указанный в аргументе filename, за потоком. Если filename передан в форме "scheme://...", он считается URL'ом и PHP проведёт поиск обработчика протокола. [url]http://www.php.su/functions/?fopen[/url] |
Огромное спасибо всем за ответы! Прямо бальзам на душу! :-) (Борюсь с этим уже несколько дней...) > Ну во первых не понятно для чего вставлять в функцию URL если файл лежит там же. Просто здесь упрощённый пример, а на самом деле нужно, чтобы функция file_get_contents возвращала отработанный результат отработки вызываемого php-скрипта - а внего надо передать ещё и параметр :-) file_get_contents([url]http://landkit.ru/item.php?block=header[/url]) В .htaccess прописано: php_flag allow_url_fopen on и phpinfo() пишет, что этот флаг включён. Но самое что ещё больше непонятно, что на другом хостинге эта строка работает прекрасно!!! Что-то правда или с правами или с настройками... Как бы понять, что?... |
Функция fopen тоже не может открыть... fopen([url]http://www.landkit.ru/item.php?block=header[/url]) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/landkit/domains/landkit.ru/public_html/index.php on line 62 |
И права на все файлы 777 и владелец один у всех файлов. Вешаться? :-) |
Права доступа тут не причем. Проверьте, будет ли читаться какой-нибудь другой сайт (можно этот форум и эту тему), или лучше несколько разных сайтов. |
[quote=2225777;39597765]Вешаться? :-) [/quote] Это слишком простое решение :) |
2 Искусственный Интеллект1: Cпасибочки за участие и новое направление мысли! :-) file_get_contents("http://forums.kuban.ru/showthread.php?p=39597765"=); и file_get_contents("http://miniature-land.com/index.php?popup=no&shopping_cart=yes"); открыли нам соответствующие сайты! Ага. Значит, всё же дело в настройках либо хостинга, либо php - кто-то запрещает вызывать url в file_get_contents, хотя allow_url_fopen включён Может, правда, хостеру написать?... |
Имеется в виду - url чужих сайтов функция file_get_contents открывает, а своего сайта - нет. Решение найдено немного другое: функция file_get_contents заменена на include нужного скрипта, переделанного в функцию. Но сам вопрос темы всё же остался загадкой :-) |
13-2225777 > обратитесь в техподдержку хостинга, возможно пояснят почему так происходит. Может такие настройки хостинга. |
На хостинге - доноре что то не отдает, если нет хидеров браузера. Блин, сталкивался же, но не помню нюансов. |
2 Фанат NASCAR: Имеется в виду такой хидер? header('User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:34.0) Gecko/20100101 Firefox/34.0'); |
[quote=2225777;39598514] Но сам вопрос темы всё же остался загадкой :-) [/quote] значит из-за пустого реферера. (mod_rewrite) |
16-2225777 >там их набор.. |
Текущее время: 17:45. Часовой пояс GMT +3. |