●見出し
本文
とか
【見出し】本文
とか、そういうの。ほとんどのテキストがそうなっているんだから、そのままパースしてやりゃぁいい。
つーことで、パースするクラスを作ってみた。スタティック変数で、見出し開始記号と、終了文字を設定出来る。デフォルトは、行頭が●で始まる記号。設定次第で、辞書カッコも使える。
以下のコードの実行結果。
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 件のコメント:
コメントを投稿