2011/1/21

PHPでsitemap.xmlを生成する

GooTubeはGoo映画の今週の映画情報を拾ってきているので、イマイチ放映中の映画の網羅性が足りないなあと思っていました。というわけで、放映中の全映画のsitemap.xmlを自動生成してみることにしました。

include('simple_html_dom.php');

function url_exists($url) {
	$header = @get_headers($url);
	if(preg_match('#^HTTP/.*s+[200|302]+s#i', $header[0])) {
		return true;
	}
	return false;
}

for ($cnt = 1; $cnt < 20; $cnt++) {
	$nifty_url = 'http://movie.nifty.com/cs/movie/list/'.$cnt.'.htm';
	if(url_exists($nifty_url)){
		$xml = str_get_html(mb_convert_encoding(file_get_contents($nifty_url), 'UTF-8','SJIS'));
		foreach($xml->find('span[class=item]') as $movie) {
			$title = htmlspecialchars($movie->plaintext);
			if(empty($content)) {
			$content =  '<url><loc>http://www.ex-exp.com/gootube/search.php?kw='.$title.'</loc><priority>0.1</priority></url>';
			} else {
			$content .=  '<url><loc>http://www.ex-exp.com/gootube/search.php?kw='.$title.'</loc><priority>0.1</priority></url>';
			}
		}
	} else {
		break;
	}
}

$sitemap = '<?xml version="1.0" encoding="UTF-8"<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'.$content.'</urlset>';

$xml = fopen('sitemap.xml', 'w');
$write = fwrite($xml, $sitemap);
fclose($xml);

とやると、

<url><loc>http://www.ex-exp.com/gootube/search.php?kw=トロン:レガシー</loc><priority>0.1</priority></url>

みたいなのが生成できました。これで今週公開の映画以外も検索エンジン的には網羅できますね。

(2012-10-5)
売り上げランキング: 14,705
100円

加藤 康祐 / 企画・設計

1980年1月12日生まれ。フリーランス歴15年。プランナー、デザイナー。加藤康祐企画設計代表。学生時代にデザイン会社でWebデザインを経験。2005年よりフリーランスとしてキャリアスタート。これまでに個人から上場企業まで、100以上のクライアントとのプロジェクトを経験。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの編集・運営、社会的養護の子どもたちの自立を支援するNPOのサポート等。趣味はラグビーと料理。Keep the head up, Bind tight & Stay low.

加藤康祐企画設計

是非、フォローしてください!
Twitter / Instagram