/** * RSSフィードのURLを指定して内容をparseする * * @param $rss_url RSSフィードのURL(http) * @return RSS取得時=RSS情報(連想配列) / RSS取得エラー時=false */ static function get_external_rss_row_array($rss_url) { // XML_RSS, XML_Parser require_once 'XML/RSS.php'; // RSS情報 $rss_row_array = array(); $line_array = file($rss_url); if ($line_array == false) { return false; } $rss_data = implode(NULL, $line_array); $rss_encoding = mb_detect_encoding($rss_data, 'auto'); // XML_RSS $rss = new XML_RSS(); $rss->setInputString($rss_data); $rss->parse(); // Channel Info $channel_info = $rss->getchannelInfo(); $rss_row_array['channel_info'] = array(); $rss_row_array['channel_info']['rss_channel_title'] = mb_convert_encoding($channel_info['title'], mb_internal_encoding(), $rss_encoding); $rss_row_array['channel_info']['rss_url'] = $rss_url; // Items $rss_row_array['items'] = array(); foreach ($rss->getItems() as $item) { $item_row = array(); $item_row['rss_item_title'] = mb_convert_encoding($item['title'], mb_internal_encoding(), $rss_encoding); $item_row['rss_item_content'] = strip_tags(mb_convert_encoding($item['content:encoded'], mb_internal_encoding(), $rss_encoding)); if (trim($item_row['rss_item_content']) == '') { // <content:encoded>が無い場合は<description>を取得 $item_row['rss_item_content'] = strip_tags(mb_convert_encoding($item['description'], mb_internal_encoding(), $rss_encoding)); } $item_row['rss_item_date'] = mb_convert_encoding($item['dc:date'], mb_internal_encoding(), $rss_encoding); $item_row['rss_item_link'] = mb_convert_encoding($item['link'], mb_internal_encoding(), $rss_encoding); array_push($rss_row_array['items'], $item_row); } return $rss_row_array; }