JUGEMのブログ記事をweblogに移す作業を始めましたが、手で記事ひとつひとつを移動するのも面倒なんで、PHPでコンバータ書いています。 JUGEMにはなんとXMLにエクスポートする機能があり、そのおかげで思ったより作業がはかどっています。
今日は、これからクラスの打ち上げがあるんで、コードを書くのはいったん中止。あとは、SQLのクエリーを書き出すようにすれば一応完成です。
<?php
$xmldata = file_get_contents("jugem0.xml");
//いらないタグを削除
$xmldata = preg_replace('/.*<entries>/is','', $xmldata);
$xmldata = preg_replace('/<\/entries>.*/is','', $xmldata);
$xmldata = preg_replace('/<\/entry>/i','', $xmldata);
//配列に変換
$ent_arr = (explode('<entry>', $xmldata));
array_shift($ent_arr);
$weblog_arr = array();
foreach($ent_arr as $i => $v){
//コメントとトラックバックを削除
$v = preg_replace('/<comments>.*<\/comments>/is','', $v);
$v = preg_replace('/<trackbacks>.*<\/trackbacks>/is','', $v);
//weblogのテーブルに適合する形に変換
$weblog_arr[$i]['title'] = preg_replace('/.*<title>(.*)<\/title>.*/is', '$1', $v);
// $weblog_arr[$i]['author'] = preg_replace('/.*<author>(.*)<\/author>.*/is', '$1', $v);
$weblog_arr[$i]['title'] = preg_replace('/.*<title>(.*)<\/title>.*/is', '$1', $v);
$weblog_arr[$i]['created'] = strtotime(preg_replace('/.*<date>([0-9]{4})\/([0-9]{2})\/([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})<\/date>.*/is', '$1-$2-$3 $4:$5:$6', $v));
$weblog_arr[$i]['description'] = preg_replace('/.*<description><\!\[CDATA\[(.*)]]><\/description>.*/is', '$1', $v);
if(preg_match('/.*<sequel><\!\[CDATA\[.+]]><\/sequel>.*/is', $v)){
$weblog_arr[$i]['sequel'] = preg_replace('/.*<sequel><\!\[CDATA\[(.*)]]><\/sequel>.*/is', '$1', $v);
}else{
$weblog_arr[$i]['sequel'] = '';
}
$weblog_arr[$i]['user_id'] = 1;
$weblog_arr[$i]['cat_id'] = 1;
$weblog_arr[$i]['contents'] = $weblog_arr[$i]['description']."<br />\n".$weblog_arr[$i]['sequel'];
$weblog_arr[$i]['dohtml'] = 1;
$weblog_arr[$i]['dobr'] = 0;
}
?>
トラバURL : http://suin.asia/trackback/239
氷川 XOOPS Module 開発室