использовать file_get_contents

Я использую file_get_content для получения rss.

Я пытаюсь использовать:

echo file_get_contents("http://vnexpress.net/gl/xa-hoi/2011/11/mot-so-bo-truong-the-hien-su-ne-tranh-trach-nhiem/");

Результат - содержимое страницы

И я пытаюсь использовать

echo file_get_content("http://hcm.24h.com.vn/ban-tre-cuoc-song/noi-doi-de-quyen-ru-chang-c64a418748.html"); 

Результат - пустая страница. почему я не могу получить это? эта страница не разрешает функцию file_get_contents? извините, я плохо говорю по-английски, пожалуйста, разрешите мой вопрос. Благодарность


person vinanghinguyen    schedule 25.11.2011    source источник
comment
это, вероятно, проблема с сетью или сайт хостинга, блокирующий ваш доступ (из вашей сети или IP)   -  person ajreal    schedule 25.11.2011
comment
Это не RSS-канал. Канал RSS находится по адресу 24h.com.vn/upload/rss/bantrecuocsong. rss. Посмотрите, если « title = «как я могу загрузить с помощью php файл xml, перенаправленный каким-то странным образом»> stackoverflow.com/questions/5975213/ решает вашу проблему.   -  person Gordon    schedule 25.11.2011


Ответы (4)


Попробуйте использовать file_get_contents вместо file_get_content.

person Pr0no    schedule 25.11.2011

Вам не хватает с. Должен быть

echo file_get_contents("http://hcm.24h.com.vn/ban-tre-cuoc-song/noi-doi-de-quyen-ru-chang-c64a418748.html");
person Jan Dragsbaek    schedule 25.11.2011
comment
Это еще чистая страница. демо: kiengiangit.com/@forum/functions/tinhyeu-24h.php - person vinanghinguyen; 25.11.2011

Прежде всего, это file_get_contents, а не file_get_content. Во-вторых, это не будет работать с http-ссылкой.

http://vnexpress.net/gl/xa-hoi/2011/11/mot-so-bo-truong-the-hien-su-ne-tranh-trach-nhiem/

должно быть что-то вроде

/home/48564568/public_html/gl/xa-hoi/2011/11/mot-so-bo-truong-the-hien-su-ne-tranh-trach-nhiem/

в зависимости от вашего сервера.

Чтобы узнать, какой должна быть ссылка, попробуйте включить несуществующий файл, например

включить (что-то случайное.php);

и вы получите уведомление об ошибке, что /the/path/you/need/somethingrandom.php не существует.

person Community    schedule 27.07.2012
comment
пожалуйста, опишите, почему file_get_contents не работает с http-ссылкой - person NullPoiиteя; 27.07.2012
comment
Это мера безопасности. Если бы кто-то мог включить удаленный php-файл, он мог бы включить его на свой веб-сайт, а ваш сервер выполнил код PHP. Вы можете обойти эту меру безопасности, установив для параметра allow_url_include значение ON на php.ini, но я бы не рекомендовал это из-за ранее исправленная утечка безопасности. - person ; 28.07.2012

В документации PHP четко указано, что file_get_contents поддерживает удаленные файлы, но вам необходимо включить параметр конфигурации allow_url_fopen. Многие сайты (по моему опыту) избегают доставки контента, если директива user_agent не установлена. Вы также должны попытаться установить это значение в допустимую строку пользовательского агента.

Из https://www.php.net/manual/en/function.file-get-contents.php

Пример #1 Получить и вывести исходный код главной страницы веб-сайта

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Из https://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

Вот краткое объяснение директив конфигурации.

allow_url_fopen логическое значение

Этот параметр включает обертки fopen с поддержкой URL, которые позволяют получать доступ к объектам URL, таким как файлы. Оболочки по умолчанию предоставляются для доступа к удаленным файлам с использованием протокола ftp или http, некоторые расширения, такие как zlib, могут регистрировать дополнительные оболочки.

Может быть много вещей (выходящих за рамки этого ответа), которые могут помешать вам вытащить файл, но я несколько раз обнаруживал, что простая установка директивы user_agent на действительную строку поможет.

person desveladisimo    schedule 05.12.2019