RSS フィードをフェッチし、フィードを解析してセカンダリ フィードを生成する php スクリプトがあります。コマンドラインでスクリプトを実行すると、問題なく実行されます。
sudo /usr/bin/php -f myscript.php > outputfile.xml &
私のcrontabには次のものがあります:
*/30 * * * * nice /usr/bin/php -f /path/to/myscript.php > /path/to/outputfile.xml &
コマンド ラインから実行した場合の出力ファイルは、http://validator.w3.org ごとの rss 検証に合格しますが、スクリプトを CRON ジョブとして実行すると、完了まで実行されません。途中で停止し、不完全な RSS フィードを生成します。
スクリプトの基本アルゴリズム
RSS フィードを取得する
simplePie で RSS フィードを解析します。
foreach フィード アイテム
リンク要素を開く
img タグのアドレスを取得する
フィードの作成を終了します。
CRON の実行中に、スクリプトは for each ループ内の open link 要素で失敗します。これは PHP で simple_html_dom オブジェクトを使用して、RSS アイテム記事からイメージ タグを取得しています。
CRONを使用して機能しない理由がわかりません。