是否有
的快捷方式echo "<pre>";
print_r($myarray);
echo "</pre>";
为了获得一个可读的数组格式,输入它们真的很烦人。
答案 0 :(得分:61)
这是最短的:
echo '<pre>',print_r($arr,1),'</pre>';
也可以省略结束标记。
答案 1 :(得分:24)
不,你只需要创建自己的功能:
function printr($data) {
echo "<pre>";
print_r($data);
echo "</pre>";
}
显然,在2018年,人们仍然会回到这个问题。以上不是我目前的答案。我会说:教你的编辑为你做这件事。我有一大堆调试快捷方式,但我最常用的是vardd
,它扩展为:var_dump(__FILE__ . ':' . __LINE__, $VAR$);die();
您可以在PHPStorm中将其配置为实时模板。
答案 2 :(得分:13)
您可以将print_r
的第二个参数设置为true
以获取返回的输出而不是直接打印:
$output = print_r($myarray, true);
您可以使用此功能将所有内容整合到一个echo
中(如果要将其打印为HTML,请不要忘记htmlspecialchars
):
echo "<pre>", htmlspecialchars(print_r($myarray, true)), "</pre>";
如果你把它放到自定义函数中,它就像使用print_r
一样简单:
function printr($a) {
echo "<pre>", htmlspecialchars(print_r($a, true)), "</pre>";
}
答案 3 :(得分:4)
echo '<pre>' . print_r( $myarray, true ) . '</pre>';
来自PHP.net print_r() docs:
当[第二个]参数设置为TRUE时,print_r()将返回信息而不是打印信息。
答案 4 :(得分:3)
可能没有帮助,但如果数组是您将要展示的唯一内容,则可以随时设置
header('Content-type: text/plain');
答案 5 :(得分:3)
教你的编辑去做 -
写完“pr_”标签后,我得到了
print("<pre>");
print_r($);
print("</pre>");
光标就在$
之后我是通过添加此片段在textmate上完成的:
print("<pre>");
print_r(\$${1:});
print("</pre>");
答案 6 :(得分:2)
如果您使用XDebug,只需使用
var_dump($variable);
这将转储像print_r
那样的变量 - 但格式很好且位于<pre>
。
(如果您不使用XDebug,则var_dump
与print_r
<pre>
的格式不合{。}}。
答案 7 :(得分:2)
echo "<pre/>"; print_r($array);
答案 8 :(得分:1)
无论是旧的还是接受的,我都会把它留在这里:
function dump(){
echo (php_sapi_name() !== 'cli') ? '<pre>' : '';
foreach(func_get_args() as $arg){
echo preg_replace('#\n{2,}#', "\n", print_r($arg, true));
}
echo (php_sapi_name() !== 'cli') ? '</pre>' : '';
}
接受任意数量的参数,并在<pre>
中为CGI请求包装每个参数。在CLI请求中,它会跳过<pre>
标记生成以获得干净的输出。
dump(array('foo'), array('bar', 'zip'));
/*
CGI request CLI request
<pre> Array
Array (
( [0] => foo
[0] => foo )
) Array
</pre> (
<pre> [0] => bar
Array [1] => zip
( )
[0] => bar
[0] => zip
)
</pre>
答案 9 :(得分:1)
我只是将函数pr()添加到我的项目的全局范围。 例如,您可以将以下函数定义为global.inc(如果有),该函数将包含在您站点的index.php中。或者您可以直接在根目录的index.php顶部定义此函数。
function pr($obj)
{
echo "<pre>";
print_r ($obj);
echo "</pre>";
}
答案 10 :(得分:1)
只需写下
print_r($myarray);
//它会显示数组$myarray
exit();
//显示数组后不会执行更多代码
答案 11 :(得分:0)
如果使用 VS CODE ,则可以使用:
Ctrl + Shift + P -> Configure User Snippets -> PHP -> Enter
之后,您可以将代码输入到文件php.json中:
"Show variable user want to see": {
"prefix": "pre_",
"body": [
"echo '<pre>';",
"print_r($variable);",
"echo '</pre>';"
],
"description": "Show variable user want to see"
}
此后,保存文件 php.json ,然后返回第一个扩展名为 .php 的文件,并输入pre_-> Enter 完成,希望对您有所帮助。
答案 12 :(得分:0)
您可以使用首选项->键绑定
在 Sublime Text 编辑器中创建快捷键。现在在方括号[]中的“键绑定”右侧添加下面的代码
{
"keys": ["ctrl+shift+c"],
"command": "insert_snippet",
"args": { "contents": "echo \"<pre>\";\nprint_r(${0:\\$variable_to_debug});\necho \"</pre>\";\ndie();\n" }
}
将您的 ctrl + shift + c 快捷方式用作PHP的漂亮印刷品。
答案 13 :(得分:0)
我一般都喜欢创建自己的功能,如上所述。但是我想添加一些东西,这样如果我不小心留下调试代码,我可以在代码库中快速找到它。也许这会帮助其他人。
function _pr($d) {
echo "<div style='border: 1px solid#ccc; padding: 10px;'>";
echo '<strong>' . debug_backtrace()[0]['file'] . ' ' . debug_backtrace()[0]['line'] . '</strong>';
echo "</div>";
echo '<pre>';
if(is_array($d)) {
print_r($d);
} else if(is_object($d)) {
var_dump($d);
}
echo '</pre>';
}
答案 14 :(得分:0)
<?php
$people = array(
"maurice"=> array("name"=>"Andrew",
"age"=>40,
"gender"=>"male"),
"muteti" => array("name"=>"Francisca",
"age"=>30,
"gender"=>"Female")
);
'<pre>'.
print_r($people).
'</pre>';
/*foreach ($people as $key => $value) {
echo "<h2><strong>$key</strong></h2><br>";
foreach ($value as $values) {
echo $values."<br>";;
}
}*/
//echo $people['maurice']['name'];
?>
答案 15 :(得分:0)
我会关闭php标签然后输出<pre></pre>
作为html,所以PHP在回复它之前不必处理它:
?>
<pre><?=print_r($arr,1)?></pre>
<?php
一般而言,这也应该更快(对于这个短片而言并不值得注意)。使用可以用作PHP代码的短代码。
答案 16 :(得分:0)
function printr($data)
{
echo "<pre>";
print_r($data);
echo "</pre>";
}
并在您需要的页面上调用您的函数,不要忘记包含您放置函数的文件,例如:functions.php
include('functions.php');
printr($data);
答案 17 :(得分:0)
也许你可以构建一个完全相同的函数/静态类方法。我使用Kohana,它有一个很好的函数叫做:
Kohana::Debug
那会做你想要的。这将它减少到只有一行。一个简单的函数看起来像
function debug($input) {
echo "<pre>";
print_r($input);
echo "</pre>";
}