帮助调试PHP代码

时间:2011-01-06 12:00:12

标签: php debugging wordpress plugins

我正在攻击wordpress插件。由于我在一个发布推文的插件中,我使用了echo或print之类的东西。我已经确定了导致问​​题的一行,但不确定究竟是什么,因为我无法打印或回显。

$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        //$tags = strval($tag);  //This doesn't.
    }
}

我尝试了各种各样的$ tag操作,比如投射等,但没有任何效果。关于如何调试的任何想法?我的最后一招是将打印值发布到文件中。还有其他想法吗?

7 个答案:

答案 0 :(得分:1)

在你的循环使用中:

var_dump($tag);
die();

您应该能够确切地看到$ tag的类型和内容。循环将在第一个值后停止imediatly。

答案 1 :(得分:1)

我发现FirePHPFireBug / Firefox的插件)对调试php非常有用,你可以在发送标题之前将消息,数组和变量发送到firebug控制台。

答案 2 :(得分:1)

答案 3 :(得分:1)

用于调试php我使用PhpED 您可以在代码中设置断点而无需任何修改, 所以你不可能在代码中留下一些回声。

答案 4 :(得分:0)

用于调试使用var_dump或print_r

答案 5 :(得分:0)

因为您错过了第二行中的连接运算符(。)

而无法正常工作
$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        $tags .= strval($tag);  //This will work Changed = to .=
    }
}

如果正在寻找调试代码FirePHP是一个很好的工具,你也可以使用任何内置调试的PHP IDE,如eclipse或其他东西。

在wordpress中,您可以使用WP-Debug Plugin

答案 6 :(得分:0)

要进行调试,因为它不会向浏览器输出任何类型的调试信息,请执行此操作或类似的操作:

$logger = fopen('debug.log','a');
fwrite($logger,"Begin Debug - " . time() . "\n------------\n");
$tagarray = wp_get_post_tags( $post_id); //returns an array
$tags = "tag:";
if (count($tagarray) > 0){
    foreach ( $tagarray as $tag ){
        //$tags .= "mytag ";  // This line  works when quotes are removed.
        //$tags = strval($tag);  //This doesn't.
        fwrite($logger,$tag . "\n");
    }
}
fwrite($logger,$tags . "\n");
fwrite($logger,print_r($tagarray) . "\n");
fwrite($logger,"----------\n End Debug \n\n");
fclose($logger);