●見出し
本文
とか
【見出し】本文
とか、そういうの。ほとんどのテキストがそうなっているんだから、そのままパースしてやりゃぁいい。
つーことで、パースするクラスを作ってみた。スタティック変数で、見出し開始記号と、終了文字を設定出来る。デフォルトは、行頭が●で始まる記号。設定次第で、辞書カッコも使える。
以下のコードの実行結果。
array(2) {
["見出し1"]=>
string(9) "本文1"
["見出し2"]=>
string(9) "本文2"
}
array(2) {
["見出し1"]=>
string(9) "本文1"
["見出し2"]=>
string(9) "本文2"
}
<?
header("Content-Type: text/html; charset=UTF-8");
$str1 = "●見出し1\n本文1\n●見出し2\n本文2";
$mp = new midashiParser();
var_dump($mp->parse($str1));
midashiParser::$delimiterStart = "【";
midashiParser::$delimiterEnd = "】";
$str2 = "【見出し1】本文1\n【見出し2】本文2";
var_dump($mp->parse($str2));
class midashiParser{
public static $delimiterStart = "●";
public static $delimiterEnd = "\n";
function parse($strIn){
$aryLine = explode("\n".self::$delimiterStart,"\n".$strIn);
$aryOut = array();
foreach($aryLine as $line){
list($key,$value) = explode(self::$delimiterEnd,$line,2);
$key = trim($key);
$value = trim($value);
if($key!=""){
$aryOut[$key] = $value;
}
}
return $aryOut;
}
}
0 件のコメント:
コメントを投稿