Ob_end_flush():无法在外部php中发送zlib输出压缩(0)的缓冲区

时间:2022-01-02 作者:Luigino

我在管理员的wordpress插件中使用jqGrid url调用了这个小php:

require_once($_SERVER[\'DOCUMENT_ROOT\'] . \'/xDl21my20/wp-load.php\');
remove_action( \'shutdown\', \'wp_ob_end_flush_all\', 1 );
add_action( \'shutdown\', function() {
   while ( @ob_end_flush() );
} );

global $wpdb;

ob_start();
$sql_select = "SELECT * FRON TABLE ORDER BY ID ASC";

$results = $wpdb->get_results($sql_select, OBJECT);

return json_encode($results);
ob_get_clean();
但我发现我没有收到任何结果,在日志中我看到了以下错误:

[02-Jan-2022 09:05:32 UTC] PHP Notice:  ob_end_flush(): failed to send buffer of zlib output compression (0) in /home/..../wp-includes/functions.php on line 5107
因此,由于我在其他问题中阅读时添加了remove\\u操作,它应该绕过ob\\u end\\u flush问题,但它没有。。。也许我忘记了什么,或者可能是与安装了PHP版本7.4.27的PHP版本有关?。。。如有任何指示,将不胜感激。。。干杯

顺便说一句,php中启用了zlib\\u压缩。ini公司

1 个回复
SO网友:Luigino

找到问题的解决方案:使用;return“返回”;不是正确的方式。。。必须使用“;“回声”;因为它不是一个函数,而是一个返回对象的简单PHP。再次感谢大家