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

回答編集履歴

2

微修正

2018/05/09 02:29

投稿

退会済みユーザー
answer CHANGED
@@ -15,7 +15,7 @@
15
15
  <textarea><?php echo $text;?></textarea>
16
16
  ```
17
17
  これで正しく <textarea> 内に改行付きで表示されます。
18
- nl2br の挙動が理解できていれば、辿り着ける回答です。
18
+ nl2br の挙動が理解できていれば、nl2br が余計なことしてるって辿り着けると思います。
19
19
 
20
20
  ちなみに、複数の方から指摘がありますが、htmlspecialchars は表示する際にエスケープする関数なので、表示の際に使用するのが適切です。
21
21
  入力値は生のまま持つのが基本です。

1

追記

2018/05/09 02:29

投稿

退会済みユーザー
answer CHANGED
@@ -1,1 +1,33 @@
1
- nl2br がなにやってるか調べてみてください。
1
+ nl2br がなにやってるか調べてみてください。
2
+
3
+ **追記**
4
+ <br />
5
+ で改行されないってことなので、<textarea> の入力を <textarea> へ出力したいのだと認識して回答を書いています。
6
+
7
+ ```php
8
+ <?php
9
+ $textarea = "hoge\r\nhoge\r\nhoge\r\n";
10
+ $textarea = htmlspecialchars($textarea);
11
+ $file = 'file.txt';
12
+ file_put_contents ($file, json_encode($textarea));
13
+ $text = json_decode(file_get_contents('./'.$file));
14
+ ?>
15
+ <textarea><?php echo $text;?></textarea>
16
+ ```
17
+ これで正しく <textarea> 内に改行付きで表示されます。
18
+ nl2br の挙動が理解できていれば、辿り着ける回答です。
19
+
20
+ ちなみに、複数の方から指摘がありますが、htmlspecialchars は表示する際にエスケープする関数なので、表示の際に使用するのが適切です。
21
+ 入力値は生のまま持つのが基本です。
22
+
23
+ ```php
24
+ <?php
25
+ $textarea = "hoge\r\nhoge\r\nhoge\r\n";
26
+ $file = 'file.txt';
27
+ file_put_contents ($file, json_encode($textarea));
28
+ $text = json_decode(file_get_contents('./'.$file));
29
+ ?>
30
+ <textarea><?php echo htmlspecialchars($text, ENT_QUOTES, 'UTF-8');?></textarea>
31
+ ```
32
+ あと、コードは最低限再現するものを記述しないと、まともに回答できません。
33
+ 今回の回答はエスパー回答です。