用PHP回应新行

时间:2011-10-07 11:50:22

标签: php

<?php
include 'db_connect.php';
$q = mysql_real_escape_string($_GET['q']);
$arr = explode ('+',$q);

foreach($arr as $ing)
{
echo $ing;
echo "<br/>";
}

mysql_close($db);

?>

通话:

findByIncredients.php?q=Hans+Wurst+Wurstel

SourceCode HTML:

Hans Wurst Wurstel<br/>

为什么只有一个NewLine?

5 个答案:

答案 0 :(得分:4)

URL中的

+ s是urlencoded空格。所以php在变量中看到的是“Hans Wurst Wurstel”。您需要按空格''拆分,而不是+

arr = explode (' ',$q);

答案 1 :(得分:1)

“+”在URL解码时转换为SPACE。 您可能希望在get参数中将字符串作为str1-str2-str3传递。

答案 2 :(得分:1)

尝试:

<?php
include 'db_connect.php';
$q = mysql_real_escape_string($_GET['q']);
$arr = explode (' ',$q);

foreach($arr as $ing)
{
echo $ing;
echo "<br/>";
}

mysql_close($db);

?>

答案 3 :(得分:0)

Hans+Wurst+Wurstel是网址转义的查询字符串。一旦未转义,php页面可能会处理它(在这种情况下,所有+将被转换为空格)。您应该根据当时的字符串为explode选择分隔符。如果您不知道字符串(或任何类型的变量)的外观,可以使用print_r()作为原始打印。

答案 4 :(得分:0)

易。虽然标准的RFC 3986 url编码会将空格“”编码为“%20”,但由于历史原因,它也可以编码为“+”。当PHP解析查询字符串时,它会将“+”字符转换为空格。

这也可以通过两者的存在来说明:

  • urlencode:相当于PHP内部使用的内容,将“”转换为“+”。
  • rawurlencode:符合RFC的编码器,将“”转换为“%20”。

我假设你想要explode空格。如果你真的想编码一个“+”字符,你可以使用“%2B”,这是rawurlencode版本,并且一直有效。

(编辑)

相关问题: