Я использую некоторые PHP-скрипты от FeedForAll для объединения RSS-каналов и отображения их в формате HTML (RSS2HTML).
Поскольку я намерен запускать эти сценарии достаточно интенсивно и не хочу, чтобы полученные HTTP-запросы и пропускная способность учитывались в моей квоте хостинга, я нахожусь в процессе перехода к их запуску на сервере веб-хоста в зонтичном PHP " пакетный сценарий, и вызовите этот сценарий через cron (кстати, это сервер Linux).
Вот (рабочий) пример запроса по HTTP:
<a href="http://www.mydomain.com/a/rss2htmlcore/rss2html2.php?XMLFILE=http://www.mydomain.com/a/myapp/xmlcache/feed.xml&TEMPLATE=template.html" rel="nofollow noreferrer">http://www.mydomain.com/a/rss2htmlcore/rss2html2.php?XMLFILE=http://www.mydomain.com/a/myapp/xmlcache/feed.xml&TEMPLATE=template.html</a>
Это даст желаемый вывод HTML. Пример того, как я хочу, чтобы это работало в командной строке:
/srv/customers/mycustomer#/mydomain.com/www/a/rss2htmlcore/rss2html2-cli.php /srv/customers/mycustomer#/mydomain.com/www/a/myapp/xmlcache/feed.xml /srv/customers/mycustomer#/mydomain.com/www/a/template.html
Это с правильной строкой Шебанга, добавленной в "rss2html2-cli.php". Я также мог бы указать исполняемый файл ("/ usr / local / bin / php") в запросе, я сомневаюсь, что это имеет значение, потому что я могу запустить другой скрипт (который я написал сам) в любом случае без проблем.
Теперь, RSS2HTML и RSSmesh отличаются тем, что для начинающих они включают в себя вторичные файлы - например, оба включают скрипт синтаксического анализатора XML - и я подозреваю, что это то, где я немного разбираюсь.
Сейчас я вызываю exec () из пакетного сценария "зонтик", вот так:
exec("/srv/customers/mycustomer#/mydomain.com/www/a/rss2htmlcore/rss2html2-cli.php /srv/customers/mycustomer#/mydomain.com/www/a/myapp/xmlcache/feed.xml /srv/customers/mycustomer#/mydomain.com/www/a/template.html", $output)
Но вывод не производится. Какой лучший способ пойти по этому поводу и какие "ошибки" я должен иметь в виду? Является ли exec () правильным подходом к этому? Он отлично работает для другого (простого) скрипта, но записывает свой собственный вывод. Для этого я хочу получить вывод и записать его в файл из зонтичного скрипта, если это возможно. Я также пробовал буферизацию вывода, но безрезультатно.
Нужно ли обращать внимание на что-то конкретное в отношении включений? Сейчас они указаны в сценариях как include_once("FeedForAll_XMLParser.inc.php");
, и указанные файлы действительно находятся в одной папке.
Дополнительная информация:
-Это сервер Linux.
-У меня нет прямого доступа к оболочке, поэтому я не могу тестировать вещи напрямую из командной строки, все через crontab.
-Я признаю, что поддержка сценариев FeedForAll оставляет желать лучшего, но я бы хотел продолжать использовать их сценарии, если это вообще возможно, хотя бы потому, что я их знаю и давно их использую. Я изучил Simplepie, но сценарии FFA выполняют некоторые вещи, для которых я не видел очевидных решений с помощью Simplepie, например, ограничение количества элементов на отдельный канал (RSSmesh) или ограничение длины описания (RSS2HTML).
-Yahoo! Каналы отсутствуют, они кешируют свои данные слишком долго для моего приложения.
Если вы хотите взглянуть на код, здесь - это сценарии в виде текстовых файлов. RSS2HTML2 и RSSmesh - это скрипты FeedForAll, FeedForAll_XMLParser ... - включенный парсер. Обратите внимание, что я еще не изменил их для обработки $ argv и т. Д. Однако я использую «scraper-universal-rss-cli», который отлично работает с CLI.
Если у кого-нибудь есть какие-либо мысли по этому поводу, это будет очень цениться. Заранее спасибо.