2010-06-10 57 views
7

我有一些代碼,使用stristr函數來提取我需要的數據。php - 我如何擺脫這個奇怪的「空分界符」消息

它給了我這個警告的循環的每一次迭代:

Warning: stristr() [function.stristr]: Empty delimiter in ... line 55 

的代碼從這個警告工作分開。這裏是代碼:

$data = stristr("$text", "$key"); 
$result = string_limit_words($data,2); 
print "$result<BR>"; 

我該如何擺脫警告信息?

+0

轉到http://php.net/manual/en/function.stristr.php並搜索空分隔符。那裏有評論,它對於你使用的PHP版本是可變的。 – randombits 2010-06-10 18:51:33

+1

注意:$ data = stristr(「$ text」,「$ key」);調用額外的解析比$ data = stristr($ text,$ key); – 2010-06-10 18:51:40

+0

@史蒂夫,但手冊沒有幫助這個,因此我在這裏問。 @丹謝謝你的提示 – Steven 2010-06-10 18:59:38

回答

6
$data = $text; 
if($key) 
    $data = stristr($data, $key); 
$result = string_limit_words($data,2); 
print "$result<BR>"; 

基本上只做stristr如果$鍵(針)並不是一個空字符串

+0

謝謝。我相信有一個空的美元鑰匙會讓其他人失去它! – Steven 2010-06-10 19:02:05

1
  1. 您還沒有表現出我們的循環。我假設你發佈的代碼位於循環體內
  2. 爲什麼使用「$ variable」?這裏不需要引用標記。
  3. 您可以通過編寫@functionName()來禁止警告。
  4. 檢查針是將它
  5. HTML(< BR>)應爲小寫前空
+0

-1你沒有回答他的問題,建議把警告作爲解決方案,並且嘮叨了一堆其他不是問題核心的東西。 – 2010-06-10 18:53:24

+0

已編輯。其餘是FYI。 – 2010-06-10 18:54:55

+0

@Steven Oxley:實際上,他確實在第4點回答了這個問題。 – animuson 2010-06-10 18:55:10

1

從php.net stristr用戶報價:dpatton.at.confluence.org

PHP 4.2.3發生了一些變化,即使在舊版本的PHP中沒有生成 消息,但使用stristr()時可能會生成警告消息 。

下面將產生在4.0.6和4.2.3的警告消息:

stristr("haystack", ""); 

OR

$needle = ""; 
stristr("haystack", $needle); 

這將產生 「空分隔符」 的警告信息4.0.6,但將4.2.3中的

unset($needle); 
stristr("haystack", $needle); 

Here's a URL該文件改變了什麼

+0

已經查閱了手冊,但沒有幫助,但謝謝 – Steven 2010-06-10 18:55:33