2008-06-22 00:22:56
昨日のスクリプトですが、「:」があってsimplexml関数を使うとうまく要素が取りだせないと書いたのは、確かにそうなのです。しかし、そこで簡単に諦めたのはいけなかった。「:」が困るのなら、置き換えればよかったのです。ということで、以下に示したようにして、simplexmlでもっとすっきりと情報を取得できました。
$data = file_get_contents("ids.txt");
$ids = explode("\n",$data);
$url = "http://www.dailymotion.com/rss/search/xxxxxx/1";
$rss = file_get_contents($url);
$rss = str_replace(":","_",$rss);
$xml = simplexml_load_string($rss);
foreach($xml->channel->item as $item){
$id = $item->dm_id;
$flv_url = $item->media_group->media_content[1]['url'];
$flv_url = str_replace("80x60","320x240",$flv_url);
$flv_url = str_replace("http_","http:",$flv_url);
if(!in_array($id,$ids)){
$curl = "curl -L -o 'flv_files/".$id.".flv' '".$flv_url."'";
exec($curl);
file_put_contents("ids.txt","\n".$id,FILE_APPEND);
}
}