<?php  // MovableTypeエントリーをP_BLOGログに変換するプログラム$host = $_POST['host'];$user = $_POST['user'];$pass = $_POST['pass'];$dbname  = $_POST['dbname'];$submit  = $_POST['submit'];?><html><head><title>MovableType -> P_BLOG</title></head><body><?phpif(!isset($submit)){?><h1>MovableType -> P_BLOG</h1><form method="post"><table border="0" width="400">    <tr><td colspan="2">以下のフォームにP_BLOGが使用するMySQLデータベースに関する情報を入力し、変換ボタンをクリックします。</td></tr>    <tr><td width="100">サーバ名:</td><td><input type="text" name="host" value="localhost"></td></tr>    <tr><td>ユーザ名:</td><td><input type="text" name="user"></td></tr>    <tr><td>パスワード:</td><td><input type="text" name="pass"></td></tr>    <tr><td>データベース名:</td><td><input type="text" name="dbname" value="p_blog"></td></tr>    <tr><td colspan="2"><input type="submit" name="submit" value="変換"></td></tr></table></form><?php    } else {  if(isset($host) && isset($user) && isset($pass) && isset($dbname)){    // MTのデータをP_BLOGに変換    $db = mysql_connect($host, $user, $pass) or die("Can not conneet");    mysql_select_db($dbname) or die("Can not select db");        $tc = true;    $cconv = 0;    $file = "mt.cgi.txt";        $fp = fopen($file, "r");    while($c = fgets($fp)){      // 行末文字の削除      $c = rtrim($c);            // もし'があればエスケープ      $c = addslashes($c);            // -----だけなら削除      if($c == '-----') $c ='';      // 一行の文字列長      $sl = strlen($c);            // タイトルか否か      if(substr($c, 0, 6) == 'TITLE:'){	$title = mb_substr($c, 7, $sl - 7);      }            // STATUS      if(substr($c, 0, 7) == 'STATUS:'){	if(substr($c, 8, 1) == 'P'){	  $draft = 0;	}else{	  $draft = 1;	}      }            // CONVERT BREAKS:      if(substr($c, 0, 15) == 'CONVERT BREAKS:'){	if(substr($c, 16, 1) == '0'){	  $tc = false;	}else{	  $tc = true;      }      }            // カテゴリか否か      if(substr($c, 0, 17) == 'PRIMARY CATEGORY:'){	$cat = mb_substr($c, 18, $sl - 18);      }            // 日付か否か      if(substr($c, 0, 5) == 'DATE:'){	$d = substr($c, 6, $sl - 6);	$da = substr($d, 6,4) . '-' . substr($d, 0, 2) . '-' . substr($d, 3, 2) . ' ';	// PMなら12時間を加算	if(substr($d, 20, 1) == 'P'){	  $doffset = 12;	} else {	  $doffset = 0;	}	// 時間部分を2桁でふぉーまっと	$da = $da . sprintf("%02s",(substr($d, 11, 2) + $doffset));	$da = $da . substr($d, 13, 6);      }            // もし、BODYならこれ以降を段落にする      if(substr($c, 0, 5) == 'BODY:') {	while(($c = fgets($fp)) != "-----\n"){	  $c = rtrim($c);	  // もし'があればエスケープ	  $c = addslashes($c);	  // imgのアドレス変更	  $c = ereg_replace("src=\"http://.*/archives/(.*)\.(jpg|png|gif)","src=\"/resources/\\1\.\\2",$c);	  if($tc){	    $log = $log . "<p>" . $c . "</p>\n";	  }else{	    $log = $log . $c . "\n";	  }	}      }            // EXTENDEDか      if(substr($c, 0, 14) == 'EXTENDED BODY:'){	$log = $log . "<!-- more -->\n";	while(($c = fgets($fp)) != "-----\n"){	  $c = rtrim($c);	  // もし'があればエスケープ	  $c = addslashes($c);	  // imgのアドレス変更	  $c = ereg_replace("src=\"http://.*/archives/(.*)\.(jpg|png|gif)","src=\"/resources/\\1\.\\2",$c);	  if($tc){	    $log = $log . "<p>" . $c . "</p>\n";	  }else{	    $log = $log . $c . "\n";	  }	}      }      $log = str_replace("<!-- more -->\n<p></p>\n","",$log);      $log = str_replace("<p></p>","",$log);            $log = str_replace("<p><ol></p>","<ol>",$log);      $log = str_replace("<p></ol></p>","</ol>",$log);      $log = str_replace("<p><ul></p>","<ul>",$log);      $log = str_replace("<p></ul></p>","</ul>",$log);      $log = ereg_replace("<p>(<pre>.*</pre>)</p>","\\1",$log);      $log = ereg_replace("(<pre>.*)</p>\n<p></pre>)</p>","\\1",$log);      $log = ereg_replace("<p>(<li>.*)</p>","\\1",$log);      $log = ereg_replace("<p>\n(<li>.*)</p>","\\1",$log);            // KEYWORDSなら段落を中止      if(substr($c, 0, 9) == 'KEYWORDS:') {	$bf = false;	$c = '';	$sql = "insert into p_blog_log values('', '$title', 'http://', '$cat',";	$sql = $sql . "'$log', '$da', '$da',$draft,'http://')";	$cconv++;	$res = mysql_query($sql) or die("$res:Query failed");	$log = '';      }    }    fclose($fp);    mysql_close($db);    printf("MovableType->P_BLOG Conversion complete %d<br>", $cconv);  }else{    print "<h1>未入力項目があります</h1>";  } }?></body></html>