teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

説明を詳細化

2021/05/02 15:01

投稿

seastar3
seastar3

スコア2287

answer CHANGED
@@ -5,5 +5,4 @@
5
5
 
6
6
  {!! nl2br($str) !!}
7
7
  '''
8
- のような手順です。
8
+ のような手順です。
9
- なお改行は、OSによって、"\n"(UNIX系),"\r"(Mac系),"\r\n"(Windows系)等の違いがあります。

2

誤字訂正

2021/05/02 15:01

投稿

seastar3
seastar3

スコア2287

answer CHANGED
@@ -1,4 +1,4 @@
1
- この現象は、e関数を使ったhtml編表示だと<p>タグや<div>タグの自動的な改行する振る舞いのみで、テキスト上の改行が効かなくなるから発生します。
1
+ この現象は、e関数を使ったhtml編表示だと<p>タグや<div>タグの自動的な改行する振る舞いのみで、テキスト上の改行が効かなくなるから発生します。
2
2
  私なら、正規表現でhtmlタグを削除してから出力します。
3
3
  ```
4
4
  $str=preg_replace("/<("[^"]*"|'[^']*'|[^'">])*>/","",$post->body);

1

code 修正

2021/05/02 15:00

投稿

seastar3
seastar3

スコア2287

answer CHANGED
@@ -1,9 +1,7 @@
1
1
  この現象は、e関数を使ったhtml編表示だと<p>タグや<div>タグの自動的な改行する振る舞いのみで、テキスト上の改行が効かなくなるから発生します。
2
- 私なら、htmlテキストの改行("\n")別の記号(仮に"++++")に置き換えて、e()関数にかけて、もう一度、置き換えた記号を改行("\n")に戻してから出力します。
2
+ 私なら、正規表現でhtmlタグ削除してから出力します。
3
3
  ```
4
- $str=preg_replace("/\n/","++++",$post->body);
4
+ $str=preg_replace("/<("[^"]*"|'[^']*'|[^'">])*>/","",$post->body);
5
- $str=e($str);
6
- $str=preg_replace("++++","/\n/",$post->body);
7
5
 
8
6
  {!! nl2br($str) !!}
9
7
  '''