所以在搜索了这里提供的问题之后,当用户扫描代码时,我仍然找不到破解新行的解决方案。
我已经尝试了\ n,PHP_EOL但仍然无法解决它。
<?php
$host = 'localhost';
$user = 'root';
$pass = 'db_pass';
$name = 'db_name';
$i = 0;
$q = $r = $s ="";
$data = $data2 = array();
$con = new mysqli($host,$user,$pass,$name);
if($con->connect_error)
die ("Error: ".$con->connect_error);
$pid = ($_POST['pid']);
$result = mysqli_query($con,"SELECT * FROM purchase_detail WHERE purchase_id ='$pid' ");
$b=mysqli_num_rows($result);
while($row = mysqli_fetch_array($result))
{
$data[$i] = $row['type_id'];
$data2[$i] = $row ['quantity'];
$i++;
}
for ($x = 0; $x < $b; $x++)
{
$q .= $data[$x];
$r .= $data2[$x];
$s .='Type: '.$q[$x] .' Quantity: '.$r[$x];
echo ''.PHP_EOL.'';
}
echo "<img src='qr_img.php?d=$s'";
?>
<html>
<form action="<?php echo htmlspecialchars ($_SERVER['PHP_SELF']);?>" method="post">
<input type="text" name="pid">
</form>
</html>
当前的结果是:
Type: 1 Quantity: 1Type: 2 Quantity: 1Type: 3 Quantity: 1Type: 4 Quantity: 1
但是,我希望它看起来像这样:
Type: 1 Quantity: 1
Type: 2 Quantity: 1
Type: 3 Quantity: 1
Type: 4 Quantity: 1
实施例: QR Scanner
我使用CodeTwo Desktop QR阅读器扫描QR码。
EDITED: 如果我使用&#39; \ n&#39;:
for ($x = 0; $x < $b; $x++)
{
$q .= $data[$x];
$r .= $data2[$x];
$s .='Type: '.$q[$x] .' Quantity: '.$r[$x];
echo '\n';
}
解: google-ing几天之后,我找到了以下答案:
for ($x = 0; $x < $b; $x++)
{
$q .= $data[$x];
$r .= $data2[$x];
$s .='Type: '.$q[$x] .' Quantity: '.$r[$x].'%0A';
}
只需%0A
答案 0 :(得分:0)
尝试使用<br />
代码
for ($x = 0; $x < $b; $x++)
{
$q .= $data[$x];
$r .= $data2[$x];
$s .='Type: '.$q[$x] .' Quantity: '.$r[$x];
echo "<br />";
}
您的输出是HTML,但是如果您放置plain text
,则\ n将像下面的
<?php
header('Content-type: text/plain');
echo "abc\nxyz";
?>
请记住\n
将在双引号内工作,例如"\n"
而不是'\n'
。因为双引号会评估变量和其他特殊字符。
当您在浏览器上运行 PHP 时,默认情况下它将呈现HTML而不是纯文本,您需要指定内容类型。所以在你的情况下\ n将不起作用。
为您编辑的解决方案:
for ($x = 0; $x < $b; $x++)
{
$q .= $data[$x];
$r .= $data2[$x];
$s .='Type: '.$q[$x] .' Quantity: '.$r[$x];
echo "<br />"; //because your output page is html type not plain text type
}
如果您将网页内容类型设为 header('Content-type: text/plain');
for ($x = 0; $x < $b; $x++)
{
$q .= $data[$x];
$r .= $data2[$x];
$s .='Type: '.$q[$x] .' Quantity: '.$r[$x];
echo "\n"; //for content type text/plain
}
注意:在您的result snapshot
中,问题是这样,但使用"<br />"
因为html内容类型
echo '\n'; <----------- Will be treated as simply a string that contains \n
echo "\n"; <----------- Will be treated as a line break, not string
答案 1 :(得分:0)
为防止此问题被删除,答案是: %0A ,在我的解决方案部分中说明。