PRE标签不能正常工作

时间:2012-12-20 21:05:17

标签: html

对于PHP调试,我自己做了一个pre()函数:

function pre($data)
{
    echo '<pre>'.print_r($data).'</pre>';
}

但它没有显示应该的换行符。例如,我将所有这些都放在一行:

Template_model Object ( [id] => 1 [type] => 1 [shortname] => default [is_custom] => 0 [is_open] => 1 [options] => Array ( [id] => 1 [name] => background_color [value] => #6699CC [type] => 0 [campaign_id] => 8 [user_id] => 11 [template_id] => 1 ) )

某些部分应该有换行符。我做错了什么?

这可能听起来很新鲜,但是当我多年来使用它时,我无法理解我做错了什么。

请不要在页面上显示任何其他HTML之前调用我的预功能。

谢谢!

2 个答案:

答案 0 :(得分:4)

print_r不返回字符串,它回显到屏幕本身(并返回TRUE)

如果您将true作为第二个参数传递,那么它将返回一个字符串。

echo '<pre>'.print_r($data, true).'</pre>';

答案 1 :(得分:2)

您需要在pre之前打印print_r()print_r()处理自己的输出。像这样:

function pre($data) 
{
    echo '<pre>';
    print_r($data);
    echo '</pre>';
}

但是,如果您使用可选参数(指定您希望它返回输出),我不确定它是否会保留换行符。我们来看看what codepad has to say about it