0

文字列をエコーし​​ようとするたびに、新しい行はありません。を使用してphpでechoを呼び出すときに改行を作成するにはどうすればよい$_GETですか?

ここに私のコードがあります:

<?php
    $text = "Hello world";
    $text2 = $_GET['msg'];

    echo $text2
?>

これは私がURLに入力するものです:

http://localhost/hello.php?msg=hello%0Dworld

またはこれ:

http://localhost/hello.php?msg=hello%0Aworld

そしてこれさえ:

http://localhost/hello.php?msg=hello%0D%0Aworld

エコーは改行でなければなりません$_GET。それはする必要があります$_GET

4

2 に答える 2

1

演習を行っている間、HTML ページを作成しています。

HTML は特別なマークアップ言語であり、一連のルールに従ってレンダリングされます。その一部は次のとおりです。

  • <>文字には、タグという名前の制御構造の特別な意味があります
  • すべての改行文字は無視されます
  • <br>ページに改行を作成するには、適切なタグを使用する必要があります-など<p>

したがって、ページに改行を表示するには、改行文字をタグに変換する必要があります。nl2br()関数を使用して<br />タグを取得するstr_replace()か、他のタグが必要な場合

于 2013-01-16T09:19:06.963 に答える
1

リクエスト変数を検証せずにエコーすることは、かなりのセキュリティ リスクになることに注意してください。このコードを使用してアプリケーションを公開する場合は、再設計する必要があります。

常識的には、urlencoded から対応する文字への変換は php によって自動的に行われますが、HTML ではそのような文字はレンダリングされないため、改行に変換するか、メッセージを<pre>タグで囲む必要があります。

于 2013-01-16T09:09:05.043 に答える