2013-01-16 106 views
0

每次我尝试回显一个字符串时,都没有新行。我如何在使用$_GET在php中调用echo时创建一个换行符?%0D%0A呼叫回叫时不会创建换行符

这里是我的代码:

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

+1

关键字是** HTML ** –

+0

对不起,我对web开发不太好。我正在创建一个移动应用程序的这个PHP。更好的解释将是一个很大的帮助。 – philip

回答

1

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

HTML是一种特殊的标记语言,按照一套规则这使得,其中一些是:

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

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

+0

明白了,谢谢。 :) – philip

1

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

由于常识状态,从url编码到相应的字符转换是自动由PHP做,但HTML不会呈现这样的人物,让你无论是需要将它们转换成换行或<pre>标签包围的消息。

+0

PHP在$ _GET变量 –

+1

上自动执行这样的解码我的常识告诉我,我犯了一个错误,需要编辑我的答案。 – Alasjo