PHP:<pre> 标签不适用于 print_r
PHP: <pre> tag not working with print_r
我有两个代码片段。在第一个代码片段中,<pre></pre>
标记不起作用,而在第二个代码片段中它起作用。为什么这样?我在第一个代码片段中哪里出错了?
代码片段 1 这里不起作用
<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
// $arr1 is still array(2, 3)
$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
echo "arr1 : "."<pre>".print_r($arr1)."</pre><br>";
echo "arr2 : "."<pre>".print_r($arr2)."</pre><br>";
echo "arr3 : "."<pre>".print_r($arr3)."</pre><br>";
?>
代码片段 2 有效
<?php
if ($_POST) {
echo '<pre>';
echo htmlspecialchars(print_r($_POST, true));
echo '</pre>';
}
?>
<form action="" method="post">
Name: <input type="text" name="personal[name]" /><br />
Email: <input type="text" name="personal[email]" /><br />
Beer: <br />
<select multiple name="beer[]">
<option value="warthog">Warthog</option>
<option value="guinness">Guinness</option>
<option value="stuttgarter">Stuttgarter Schwabenbräu</option>
</select><br />
<input type="submit" value="submit me!" />
</form>
您的代码的问题是您将 pre
标签与 print_r
的输出连接在一起,因此您的代码首先打印数组,然后连接。
注意: 您应该传递 2nd
参数 true
以在 return.
中获取字符串输出
这样改成:
echo "arr1 : <pre>".print_r($arr1)."</pre><br>";
这个:
echo "arr1 : <pre>".print_r($arr1,true)."</pre><br>";
或
echo "arr1 : <pre>";
print_r($arr1);
echo "</pre><br>";
我有两个代码片段。在第一个代码片段中,<pre></pre>
标记不起作用,而在第二个代码片段中它起作用。为什么这样?我在第一个代码片段中哪里出错了?
代码片段 1 这里不起作用
<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
// $arr1 is still array(2, 3)
$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
echo "arr1 : "."<pre>".print_r($arr1)."</pre><br>";
echo "arr2 : "."<pre>".print_r($arr2)."</pre><br>";
echo "arr3 : "."<pre>".print_r($arr3)."</pre><br>";
?>
代码片段 2 有效
<?php
if ($_POST) {
echo '<pre>';
echo htmlspecialchars(print_r($_POST, true));
echo '</pre>';
}
?>
<form action="" method="post">
Name: <input type="text" name="personal[name]" /><br />
Email: <input type="text" name="personal[email]" /><br />
Beer: <br />
<select multiple name="beer[]">
<option value="warthog">Warthog</option>
<option value="guinness">Guinness</option>
<option value="stuttgarter">Stuttgarter Schwabenbräu</option>
</select><br />
<input type="submit" value="submit me!" />
</form>
您的代码的问题是您将 pre
标签与 print_r
的输出连接在一起,因此您的代码首先打印数组,然后连接。
注意: 您应该传递 2nd
参数 true
以在 return.
这样改成:
echo "arr1 : <pre>".print_r($arr1)."</pre><br>";
这个:
echo "arr1 : <pre>".print_r($arr1,true)."</pre><br>";
或
echo "arr1 : <pre>";
print_r($arr1);
echo "</pre><br>";