8

我收到此错误:

警告:strpos(): ......popularity-contest.php 中第 2574 行的空针

function akpc_is_searcher() {
        global $akpc;
        $referrer = parse_url($_SERVER['HTTP_REFERER']);
        $searchers = explode(' ', preg_replace("\n|\r|\r\n|\n\r", ' ', $akpc->searcher_names));
        foreach ($searchers as $searcher) {
                if (strpos($referrer['host'], $searcher) !== false) {
                        return true;
                }
        }
        return false;
}

有人可以帮我解决这个问题吗?

4

2 回答 2

11

一堆 PHP 搜索函数使用术语“needle”和“haystack”作为参数名称,指示搜索的内容和搜索的位置。

函数就是这样的strpos函数。“空针”表示您传入了一个空值或空值作为要查找的针。这就像说“什么都不搜索”,这对函数没有意义。

要解决此问题,请检查您作为针头传入的变量是否具有实际值。该empty功能是一个不错的选择。

于 2014-10-12T13:20:47.803 回答
5

如果您在 wp_config.php 中将 WP_DEBUG 设置为 false,警告应该会消失。如果您想修复它,请尝试以下操作:

function akpc_is_searcher() {
        global $akpc;
        $referrer = parse_url($_SERVER['HTTP_REFERER']);
        $searchers = explode(' ', preg_replace("\n|\r|\r\n|\n\r", ' ', $akpc->searcher_names));
        foreach ($searchers as $searcher) {
                if ( ! empty($searcher) && strpos($referrer['host'], $searcher) !== false) {
                        return true;
                }
        }
        return false;
}
于 2014-10-12T13:11:50.483 回答