LoginSignup
0
0

More than 5 years have passed since last update.

phpで文章を整形せよ!

Posted at

なんかもうごっちゃですけど…

むかしむかしあるところに

おじいさんとおばあさんが

住んでいました。

 

ある日、おばあさんが川に

せんたくにいくと、かわかみから

大きなモモが、どんぶらこっこ

 

4月18日 桃太郎

 

注:おじいさんは芝刈りに行ってる。

データベースの1つのセルにコレが埋まってるんスけど…
え?これを良い感じに表示したい??
日付と注釈は要らない???

…カラム分けといてやァ!

まぁ、やります。

「プログラミングってのは匂い以外は表現出来っから」
とか言われたらやってやるしかありません。

まず問題点を洗い出してみましょう。

  • 改行が無駄。
  • htmlでマークアップされてない。
  • 日付と注釈は不要

という感じです。
幸いなことに

  • 文章が で区切られている。

という法則性?があるみたいなので
それを頼りに整形していきます。

改行をまとめる

preg_replaceを用いて正規表現で改行をまとめます。

$text=preg_replace('/(\n|\r|\r\n)+/us',"<br>",$text);

&#32;で文章を区切る

explodeを用いて&#32;で文章を区切り、配列にします。

$text_array=explode('&#32;',$text);

要らない配列の要素を削ぐ

array_splice();で配列を切り出します。
他にも配列を操作する関数で必要な部分を集める
または不必要な部分を捨てます。

$split=array_splice($text_array,0,2);

区切った文章を繋げる

implodeを用いて配列を繋げて、文章にします。

$html='<p>'.implode('</p><p>',$split).'</p>';

で完成!!!

<?php
    $bunsyou='むかしむかしあるところに

    おじいさんとおばあさんが

    住んでいました。

    &#32;

    ある日、おばあさんが川に

    せんたくにいくと、かわかみから

    大きなモモが、どんぶらこっこ

    &#32;

    4月18日 桃太郎

    &#32;

    注:おじいさんは芝刈りに行ってる。';

    $text=preg_replace('/(\n|\r|\r\n)+/us',"<br>",$bunsyou);
    $text_array=explode('&#32;',$text);
    $split=array_splice($text_array,0,2);
    $html='<p>'.implode('</p><p>',$split).'</p>';

    echo $html;
?>

これで良い感じにマークアップ出来たはず!

でも課題も残る。

pタグの最後にbrタグが残ってるのが…
って感じですが、まぁ見れなくはないかな。

編集後記

入社14日目
とんでもないデータベース設計の案件でコレやりました。
…ちゃんとRDB使ってください。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0