我正在攻击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操作,比如投射等,但没有任何效果。关于如何调试的任何想法?我的最后一招是将打印值发布到文件中。还有其他想法吗?
答案 0 :(得分:1)
在你的循环使用中:
var_dump($tag);
die();
您应该能够确切地看到$ tag的类型和内容。循环将在第一个值后停止imediatly。
答案 1 :(得分:1)
答案 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);