[英]Echo new line in 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
源代码HTML:
Hans Wurst Wurstel<br/>
为什么只有一个换行符?
URL中的+ s是urlencoded空格。 所以php在变量中看到的是“Hans Wurst Wurstel”。 你需要按空格分割,而不是+
arr = explode (' ',$q);
“+”在URL解码时转换为SPACE。 您可能希望在get参数中将字符串作为str1-str2-str3传递。
尝试:
<?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);
?>
Hans+Wurst+Wurstel
是url转义查询字符串。 一旦未转义,php页面可能会处理它(在这种情况下,所有+
s将被转换为空格)。 您应该根据当时的字符串选择分隔符进行explode
。 如果您不知道字符串(或任何类型的变量)的外观,可以使用print_r()
作为原始打印。
简单。 虽然标准的RFC 3986 url编码会将空格“”编码为“%20”,但由于历史原因,它也可以编码为“+”。 当PHP解析查询字符串时,它会将“+”字符转换为空格。
两者的存在也说明了这一点:
我假设你想要通过太空explode
。 如果你真的想编码一个“+”字符,你可以使用“%2B”,这是rawurlencode
版本,并将始终有效。
(编辑)
相关问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.