0

每次我尝试回显一个字符串时,都没有新行。我如何使用 php 在 php 中调用 echo 时换行$_GET

这是我的代码:

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

    echo $text2
?>

这就是我在网址中输入的内容:

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

或者这个:

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

甚至这个:

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

echo 必须是换行符,请不要说我应该使用与$_GET. 它一定要是$_GET

4

2 回答 2

1

请注意,在不验证它们的情况下回显任何请求变量是一个相当大的安全风险!如果您想使用此代码发布任何应用程序,则需要对其进行重新设计。

正如常识所说,从 urlencoded 到对应字符的转换是 php 自动完成的,但 HTML 不会呈现此类字符,因此您需要将它们转换为换行符或将消息括在<pre>标签中。

于 2013-01-16T09:09:05.043 回答
1

在执行练习时,您正在创建一个 HTML 页面。

HTML 是一种特殊的标记语言,它根据一组规则呈现,其中一些是:

  • <>字符具有命名标签的控制结构的特殊含义
  • 所有换行符都被忽略
  • 要在页面上制作换行符,必须使用合适的标签 - 例如<br><p>或其他。

因此,要使换行符出现在您的页面上,您必须将换行符转换为标签。使用nl2br()函数获取<br />标签,或者str_replace()如果您想要任何其他标签

于 2013-01-16T09:19:06.963 回答