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); } }