自动检测iframe阻塞

时间:2014-02-26 09:13:26

标签: php iframe

我在新闻聚合网络应用中使用iframe。虽然我小心翼翼地总是信任和链接发布者,但我也尊重那些选择阻止iframe的人(通过不实施偷偷摸摸的解决方法)。我的问题是如何根据相关外部网页的URL自动检测是否会阻止iframe。到目前为止,我正在使用此代码:

        //get external html
        $p = file_get_contents($this->scrape_ready_url);
        //check for blocker
        $pattern1 = "/window\.self.{1,10}window\.top/";
        $s1 = preg_match($pattern1, $p);
        //check for blocker2
        $pattern2 = "/window\.top.{1,10}window\.self/";
        $s2 = preg_match($pattern2, $p);
        //condition response
        if ($s1 === 1 || $s2 === 1) {
            $this->frame = "blocked";
        } else {
            $this->frame = "not_blocked";
        }

大部分时间(目前为止)都有效,但许多发布商(例如yahoo)使用“self!== top”代码的轻微变体,这使得preg_match无效。我想知道是否有任何通用/通用测试可以实现,以了解给定的URL是否会阻止iframe。

感谢

0 个答案:

没有答案