
2019-07-25
system
このブログは本文はtextareaでできている。
DBに登録するときにタグをとダブルクォーテーションを正規表示に切り替え、表示するときにデコードしている。
改行は\nになるので、n2lbr関数で改行処理を行っていた。
さて、ではソースコードを挿入しようと思うとソースで改行している部分にbrが挿入されてえらくかっこ悪くなった。
基本的に使うタグはpreなので、このソースに絞って改行処理を切り替える関数を作成した。
- function nobrBody( $string )
- {
- $search_str = "pre";
- $search_str2 = "/pre";
- if ( strpos($string, $search_str) !== false ) {
- //preが含まれている数をカウント
- $count = mb_substr_count($string, $search_str);
- //タグありなしで文章を分ける
- for ($ii = 0; $ii < $count; $ii ) {
- $brbody = mb_strstr( $string, $search_str, ture );
- $nobrBody = mb_strstr( $string, $search_str );
- $nobrBody = mb_strstr( $nobrBody, $search_str2, true );
- $string = mb_strstr( $string, $search_str );
- $string = mb_strstr( $string, $search_str2 );
- $strwk .= preg_replace("/\r\n|\r|\n/", '改行', $brbody);
- $strwk .= preg_replace("/\r\n|\r|\n/", '', $nobrBody);
- }
- $strwk .= preg_replace("/\r\n|\r|\n/", '改行', $string);
- } else {
- $strwk = preg_replace("/\r\n|\r|\n/", '改行', $string);
- }
- return $strwk;
- }