2015-10-15 75 views
0

有沒有辦法在達到某個索引時中斷搜索preg_replace_callbackPHP preg_replace_callback有沒有辦法打破搜索?

例如:

  $content = preg_replace_callback('/'.preg_quote($_POST['query'],'#').'/i', function($matches) use($replacements,&$index) { 
       if ($index > count($replacements)) { 
        // I tried break; but doesn't work 
       } 

       if ($replacements[$index] != '') { 
        $matches[0] = $replacements[$index]; 
       } 
       $index++; 
       return $matches[0]; 
      }, $content); 
+0

@Kasramvd我已經在上面添加了一個示例代碼。 – JohnnyQ

回答

1

您可以只使用ELSEIF忽略第二,如果

 $content = preg_replace_callback('/'.preg_quote($_POST['query'],'#').'/i', function($matches) use($replacements,&$index) { 
      if ($index > count($replacements)) { 
       // I tried break; but doesn't work 
      } elseif ($replacements[$index] != '') { 
       $matches[0] = $replacements[$index]; 
      } 
      $index++; 
      return $matches[0]; 
     }, $content); 

編輯

preg_replace_callback (mixed pattern, callback callback, mixed subject [, int limit [, int &count]]) 

限制 最大爲每個模式中可能的替代品每個主題字符串。默認爲-1(沒有限制)。

count 如果指定,則此變量將填充完成的替換次數。

+0

有沒有辦法停止搜索? – JohnnyQ

+1

Actualy你可以限制全部替換它唯一的另一種方法是編寫自己的函數來遍歷數組。 –

相關問題