Использование file_get_contents или curl для ссылки на тот же сервер - PullRequest
2 голосов
/ 02 июня 2009

У меня есть PHP-скрипт, который должен обрабатывать RSS-канал того же сайта. В частности, я показываю самые последние блоги из RSS-канала WordPress на главной странице. На нашем промежуточном сервере это работало нормально, но в нашей реальной (совершенно другой, но LAMP) среде хостинга это не работает.

Я могу запустить file_get_contents или curl на удаленном URL-адресе, но когда я пытаюсь получить наш собственный канал RSS, мне возвращается страница 404 не найдена. Еще одна странность: если я попробую file_get_contents(http://domain.com/test.txt), то с 404 произойдет сбой, но если я сделаю file_get_contents(http://www.domain.com/test.txt), я получу содержимое тестового текстового файла. Все это при условии, что я запускаю сценарий с domain.com (не www.domain.com)

Я настроил пример здесь: http://bkwld.com/test.php

Ответы [ 5 ]

2 голосов
/ 03 июня 2009

Хорошо, я до сих пор не знаю, какого черта это происходит, но я собираюсь решить эту проблему, пропустив свой канал через feedburner, а затем проанализировав его RSS-канал. Поскольку он находится в удаленном домене, он работает в моих тестах. Не идеально, но с е.

1 голос
/ 17 октября 2009

У меня только что была похожая проблема. DNS - это проблема, она не разрешает ваше доменное имя. Вы должны использовать IP вместо домена в ваших скриптах.

Вы можете пропинговать свой домен в cmd и использовать этот IP.

1 голос
/ 02 июня 2009

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

0 голосов
/ 26 октября 2011

Если domain.com/test.txt возвращает 404 и www.domain.com/test.txt успешно, возможно, DNS-сервер хоста настроил домены по-другому. В любом случае, я уверен, что вы уже пытались получить RSS-канал с помощью «www», но пробовали ли вы с относительным путем? например: file_get_contents('../../feed/')

0 голосов
/ 03 июня 2009

Действительно, странно. Как вы будете разбирать файл? Вы можете загрузить его в SimpleXML напрямую;

$xml = simplexml_load_file("http://domain.com/blog/feed/index.php");
/* Use Simple XML to parse the RSS feed */

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

...