我正在尝试从一段时间内将javascript代码(adsense)插入到php驱动的问答类型的网站中的特定帖子(问题)中,到目前为止还没有运气。我试图使用以下代码覆盖显示帖子所需的函数:
public function q_view_content($q_view) {
qa_html_theme_base::q_view_content($q_view);
if(isset($q_view['raw']['postid'])) {
if($q_view['raw']['postid'] == '203') {
$content_block = explode('<p>',$q_view);
if(!empty($content_block[2]))
{ $content_block[2] .= '<div align="center">
My awesome code here</div>';
}
for($i=1;$i<count($content_block);$i++)
{ $content_block[$i] = '<p>'.$content_block[$i];
}
$q_view = implode('',$content_block);
$this->output($q_view);
}
}
}
但是,我没有在网页上显示代码,而是出现以下错误: 警告:explode()期望参数2是字符串,第37行给出的数组; 警告:implode():第45行传递的参数无效
非常感谢任何帮助。
答案 0 :(得分:1)
如果您查看手册,并且错误上显示了explode()
requires two values that are strings。 $q_view
是一个数组,而不是字符串,因此您无法使用字符串函数将其拆分。
这是有效的:
$array = explode('0',$q_view['raw']['postid']);
print_r($array);
并且会给你:
Array
(
[0] => 2
[1] => 3
)
因此,你不能这样做:
$content_block = explode('<p>',$q_view);
因为$q_view
不是字符串,所以它是一个数组。
另一个问题与explode()
有关,因为它无法拆分数组,因此$content_block
不是数组,因此implode()
失败。