なんかもうごっちゃですけど…
むかしむかしあるところに
おじいさんとおばあさんが
住んでいました。
 
ある日、おばあさんが川に
せんたくにいくと、かわかみから
大きなモモが、どんぶらこっこ
 
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使ってください。