%0D%0A在调用echo时不创建换行符

时间:2013-01-16 08:59:39

标签: php

每当我尝试回显一个字符串时,就没有新行。我如何使用$_GET

在php中调用echo时创建换行符

这是我的代码:

<?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

回声必须是换行符,请不要说我应该使用与$_GET不同的方法。它必须是$_GET

2 个答案:

答案 0 :(得分:1)

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

由于常识状态,从urlencoded到相应字符的转换是由php自动完成的,但HTML不会呈现此类字符,因此您需要将它们转换为换行符或封装消息在<pre>代码中。

答案 1 :(得分:1)

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

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

  • <>个字符具有名为 tags
  • 的控制结构的特殊含义
  • 忽略所有换行符
  • 要在页面上创建换行符,必须使用合适的标记 - 例如<br><p>或其他任何内容。

因此,要在页面上显示换行符,您必须将换行符转换为标记。使用nl2br()函数获取<br />代码或str_replace()如果您需要任何其他代码