2014-10-12 36 views
3

我得到這個錯誤:警告:strpos():在...... WordPress插件空針

警告:strpos():在......人氣,比賽空針。上的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; 
} 

有人可以幫我解決這個問題?

+1

'在線2574' - 你最好將你的文件分割成一個較小的文件。 – sectus 2014-10-12 13:08:30

回答

3

如果在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; 
} 
+0

你的代碼工作正常!謝謝! 但是,遇到的新問題是: 「警告:preg_replace():未知修飾符''在2572行中的popular-contest.php」 如何解決此問題? – user57139 2014-10-12 13:42:41

+0

line 2572 = $ searchers = explode('',preg_replace(「\ n | \ r | \ r \ n | \ n \ r」,'',$ akpc-> searcher_names)); – user57139 2014-10-12 13:45:11

+0

正則表達式模式必須包含在「/」中。試試這個:'$ searchers = explode('',preg_replace(「/ \ n | \ r | \ r \ n | \ n \ r /」,'',$ akpc-> searcher_names));'' – 2014-10-17 15:32:46

6

一束PHP的搜索功能使用術語「針」和「乾草堆」爲參數名稱,說明所尋求的,在哪裏尋找它。

strpos函數就是這樣一個函數。 「空針」意味着你已經通過空值或空值作爲尋找的針。這就像說「沒有任何東西」,這對功能沒有意義。

要解決此問題,請檢查您傳入的變量是否具有實際值。 empty函數是一個不錯的選擇。