なんかもうごっちゃですけど…
むかしむかしあるところに
おじいさんとおばあさんが
住んでいました。
 
ある日、おばあさんが川に
せんたくにいくと、かわかみから
大きなモモが、どんぶらこっこ
 
4月18日 桃太郎
 
注:おじいさんは芝刈りに行ってる。
データベースの1つのセルにコレが埋まってるんスけど…
え?これを良い感じに表示したい??
日付と注釈は要らない???
…カラム分けといてやァ!
まぁ、やります。
「プログラミングってのは匂い以外は表現出来っから」
とか言われたらやってやるしかありません。
まず問題点を洗い出してみましょう。
- 改行が無駄。
- htmlでマークアップされてない。
- 日付と注釈は不要
という感じです。
幸いなことに
- 文章が
 
で区切られている。
という法則性?があるみたいなので
それを頼りに整形していきます。
改行をまとめる
preg_replace
を用いて正規表現で改行をまとめます。
$text=preg_replace('/(\n|\r|\r\n)+/us',"<br>",$text);
 
で文章を区切る
explode
を用いて 
で文章を区切り、配列にします。
$text_array=explode(' ',$text);
要らない配列の要素を削ぐ
array_splice();
で配列を切り出します。
他にも配列を操作する関数で必要な部分を集める
または不必要な部分を捨てます。
$split=array_splice($text_array,0,2);
区切った文章を繋げる
implode
を用いて配列を繋げて、文章にします。
$html='<p>'.implode('</p><p>',$split).'</p>';
で完成!!!
<?php
$bunsyou='むかしむかしあるところに
おじいさんとおばあさんが
住んでいました。
 
ある日、おばあさんが川に
せんたくにいくと、かわかみから
大きなモモが、どんぶらこっこ
 
4月18日 桃太郎
 
注:おじいさんは芝刈りに行ってる。';
$text=preg_replace('/(\n|\r|\r\n)+/us',"<br>",$bunsyou);
$text_array=explode(' ',$text);
$split=array_splice($text_array,0,2);
$html='<p>'.implode('</p><p>',$split).'</p>';
echo $html;
?>
これで良い感じにマークアップ出来たはず!
でも課題も残る。
p
タグの最後にbr
タグが残ってるのが…
って感じですが、まぁ見れなくはないかな。
編集後記
入社14日目
とんでもないデータベース設計の案件でコレやりました。
…ちゃんとRDB使ってください。