在php中的特定段落后插入google adsense代码

时间:2018-04-13 21:46:29

标签: php

我正在尝试从一段时间内将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行传递的参数无效

非常感谢任何帮助。

1 个答案:

答案 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()失败。