我正在wordpress网站上进行表演。我开发使用OOP(MVC)结构。我的缓冲部分代码是
Class RPController{
public function __construct()
{
add_action('wp_head', array($this,'rpl_buffer_start'));
add_action('wp_footer', array($this,'rpl_buffer_end'));
}
public function rpl_buffer_start()
{
ob_start(array($this,"rpl_callback"));
}
public function rpl_buffer_end()
{
ob_end_flush();
}
public function rpl_callback($buffer)
{
$data = get_option('rpl_form_data');
if(isset($data)):
for ($i=0; $i < count($data['rimg']); $i++)
{
$buffer = str_replace($data['oimg'][$i], $data['rimg'][$i], $buffer);
}
endif;
return $buffer;
}
}
$RPController = new RPController();
它不会影响输出。
来自db的data
以愚蠢的格式保存为2维数组
Array ( [oimg] => Array ( [0] => RightStyle Profile [1] => Admin Test ) [rimg] => Array ( [0] => Profile [1] => Test ) )
当我手动创建这种数组而不是db时,这个缓冲工作完全正常。 任何人都可以告诉我为什么这不适用于数据库数据?