2012年5月30日

[PHP-users 35716]情報取得の際にtitleとurlを連携させ、既得のtitleの場合は処理しないという事をしたいのですが

質問させてください。

自分はPHPにてcURLで、

1. topページ http://www.eslpod.com/website/show_all.php)から数十のリンク先
の記事のtitle(English Café 348)と、各記事へ飛ぶurl http://www.eslpod.com/website/show_podcast.php?issue_id=11951688)を取得
2. パソコン内に1.で取得したtitleと同じファイル(ファイル名はEnglish Café 348.txtのようにします)があるかを確認
3. 同名のものがあればそのurlに対する処理はせず、無ければそのurlを配列に格納し、一気にforeach()などで、その先の英文を取得しテキストファイルに書き込んで保存という処理を実行


というプロセスを行いたいと考えているのですが、スクリプト記述のアイデアが浮かびません。


cURLから得たtitle情報を$titlesに、リンク先のurl情報を$urlsに入れるとします。
で、opendir()関数で指定ディレクトリ内にあるファイル名を確認する際のやり方を以下のように考えました。
$filesという配列内に.txt拡張子を省いたファイル名を格納、それをarray_diff($titles, $files)にて比較。

しかし、これだけではその後に必要とされる$urlsと関連性がありません。
なので$dataという配列内に連想配列として$data[$title] = $urlというtitle、urlを個別対応の形にして、
array_diff($data[$title], $files)としようかと考えました。

しかし、この形ではcURLの後に
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
//body部から該当するtitleを取得
$extracts = $xpath->query($titles_xPath);
foreach ($extracts as $value)
{
$result = trim($value->nodeValue);
$results[] = $result;
}
のようなスクリプトを実行する自分のやり方ではtitleとurlを対応させられません。

ちょっと分かりにくい文章になってしまって申し訳ございませんが、どのようにすればtitleとurlを対応させながら、上記のような1〜3の処理を完了させればいいのかアドバイスを頂けないでしょうか?
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2012年5月30日 21:57
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110695
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。