相关疑难解决方法(0)

你如何调试PHP脚本?

你如何调试PHP脚本?

我知道基本调试,例如使用错误报告.PHPEclipse中的断点调试也非常有用.

在phpStorm或任何其他IDE中调试的最佳方法(快速简便)是什么?

php eclipse debugging xdebug phpstorm

403
推荐指数
15
解决办法
34万
查看次数

使var_dump看起来很漂亮

我有一个简单的$_GET[]查询var set,用于在从DB下拉查询时显示测试数据.

<?php if($_GET['test']): ?>
  <div id="test" style="padding: 24px; background: #fff; text-align: center;">  
    <table>
      <tr style="font-weight: bold;"><td>MLS</td></tr>
      <tr><td><?php echo KEY; ?></td></tr>
      <tr style="font-weight: bold;"><td>QUERY</td></tr>
      <tr><td><?php echo $data_q; ?></td></tr>
      <tr style="font-weight: bold;"><td>DATA</td></tr>
      <tr><td><?php var_dump($data); ?></td></tr>
    </table>    
</div>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

当我这样做的时候var_dump,正如预期的那样,这个大阵列的字符串都被一起刷了.有没有办法至少为此添加换行符或var_dump以更可读的方式显示?我对jQuery有关在发布后操纵字符串的建议持开放态度.

php arrays var-dump

115
推荐指数
6
解决办法
12万
查看次数

将print_r和var_dump与循环引用一起使用

我正在使用MVC框架Symfony,似乎我想调试的很多内置对象都有循环引用.这使得无法使用print_r()或打印变量var_dump()(因为它们无限制地遵循循环引用或直到进程耗尽内存,以先到者为准).

而不是print_r用一些智能编写我自己的克隆,那里有更好的替代品吗?我只希望能够将变量(对象,数组或标量)打印到日志文件,http标头或网页本身.

编辑:要澄清问题所在,请尝试以下代码:

<?php

class A
{
    public $b;
    public $c;

    public function __construct()
    {
        $this->b = new B();
        $this->c = new C();
    }
}

class B
{
    public $a;

    public function __construct()
    {
        $this->a = new A();
    }
}

class C
{
}

ini_set('memory_limit', '128M');
set_time_limit(5);

print_r(new A());
#var_dump(new A());
#var_export(new A());
Run Code Online (Sandbox Code Playgroud)

它无法使用print_r(),var_dump()var_export().错误消息是:

PHP致命错误:第10行的print_r_test.php中允许的内存大小为134217728字节(尝试分配523800字节)

php debugging circular-reference

38
推荐指数
4
解决办法
2万
查看次数

是否有漂亮的打印堆栈转储?

让我们面对现实,debug_backtrace()输出不是很漂亮.有没有人编写包装器?

什么是你最喜欢的漂亮var_dump()(可用于商业项目,所以没有GPL(虽然LGPL是好的))

另请参阅:PHP中更漂亮/信息丰富的Var_dump替代方案?


六年 - 以及这个问题的一万次观点 - 后来,我仍在使用这个.它在屏幕上显得不错,就像Kint(非常棒).

它是纯文本,我可以通过自动错误报告发送给自己,并可以使用ChromePhp在浏览器的开发人员控制台中显示.

/**
 * @brief Returns an HTML formatted string showing details of the backtrace
 * 
 * Example:
 * 
 *    F:\Dropbox\programs\Xampp\htdocs\api\q.php:48 e(373, 'beer', 'curry')
 *    F:\Dropbox\programs\Xampp\htdocs\api\q.php:53 d(26366, 28255, 8364)
 *    F:\Dropbox\programs\Xampp\htdocs\api\q.php:58 c()
 *    F:\Dropbox\programs\Xampp\htdocs\api\q.php:63 b(1283, 15488, 29369)
 *    F:\Dropbox\programs\Xampp\htdocs\api\q.php:72 a(788, 6077, 25010)
 */
function FormatBacktrace()
{
   $result = '<h4>Backtrace</h4>';

   foreach (debug_backtrace() as $trace)
   {
      if ($trace['function'] ==__FUNCTION__)
          continue;

      $parameters = is_array($trace['args']) ? …
Run Code Online (Sandbox Code Playgroud)

php debugging

12
推荐指数
4
解决办法
2万
查看次数

寻找在大型对象上分析var_dump(PHP)的简便方法

我知道(PHP的)var_dump应该是"人类可读的"所有,但分析大型物体只是一个痛苦的问题.我正在努力理解在我们正在运行的脚本中传递的一些大对象.(我知道使用xdebug和IDE是一个好主意,但由于某种原因,我无法让xdebug在这个项目上运行 - 几天丢失了,呃).

关于如何轻松消化真正大的var_dump内容的任何想法?任何想法,欢迎...虽然我希望能有类似的东西托马斯·弗兰克的JSON工具(如你只是把一些代码,它给出了一个漂亮的图形表示).

php debugging var-dump

9
推荐指数
2
解决办法
3284
查看次数

将返回值转储为 Laravel 中的扩展数组

我正在使用dump($value)函数。我有一个关联数组,其中有很多条目。我需要立即查看这些值,而无需在转储时单击扩展按钮。我可以var_dump()立即看到它,但我更喜欢使用 dump,因为它是现代且交互式的。下面是 dump 函数的快照:

在此输入图像描述

php var-dump laravel

4
推荐指数
1
解决办法
3677
查看次数

如何避免在查看数组时输入<pre> ...任何想法?

我经常需要在数组中查看数据并使用html标记<pre>来执行此操作.然而,不得不一直打出相同的东西变得乏味和令人沮丧.

我的问题是,你的技术是什么,以避免这种使用PHP编程的烦恼?

php

3
推荐指数
1
解决办法
592
查看次数

如何格式化(漂亮打印)多维数组进行调试?

我见过一些在线漂亮的打印模块代码.有人知道将多维数组格式化为可读显示吗?

例如,翻译这个:

array(83){[0] => array(2){["name"] => string(11)"CE2 Options"["type"] => string(5)"title"} [1] => array(1){["type"] => string(4)"open"} [2] => array(5){["name"] => string(8)"Template"["desc"] = > string(638)"test description"["id"] => string(9)"my_theme"["type"] => string(14)"selectTemplate"["options"] => array(13){

进入这...

array(83) { 
    [0]=> array(2) { ["name"]=> string(11) "My Options" ["type"]=> string(5) "title" } 
    [1]=> array(1) { ["type"]=> string(4) "open" } 
    [2]=> array(5) { 
        ["name"]=> string(8) "Template" 
        ["desc"]=> string(638) "Test description" 
        ["id"]=> string(9) "my_theme" 
        ["type"]=> string(14) "selectTemplate" 
        ["options"]=> array(13) { 
            [0]=> string(10) "test" 
Run Code Online (Sandbox Code Playgroud)

pretty-print

3
推荐指数
1
解决办法
1万
查看次数