2010-09-15 47 views
1

传入的是一个词从一个文本框或其他功能PHP - 当找到匹配

function searchformatch($keyword){ 

       if(!$keyword){hey-enter-a-keyword-function();} 
       foreach (glob("directory/*.txt") as $filename) { 
       $file = $filename; 
       $contents = file($file); 
       $string = implode($contents); 
        foreach ($string as $look){ 
        if (preg_match("/\b".$keyword."\b/i", $look) { 
       /*echo $string;*/ 
         } 
        } 
       } 
      } 

这是我试图尝试寻找一些文件的确切的行匹配在目录停止搜索。 (每行是一个字)。

但是,我希望它在找到匹配项时停止搜索。

如果$ keyword是一个关键字数组,我也想在另一个函数中做到这一点。 (例如:来自文本区域)。但是,这可能是另一个问题。

回答

1

使用break停止foreach循环,如果找到匹配:

foreach ($string as $look) { 
    if (preg_match("/\b".$keyword."\b/i", $look)) { 
     /*echo $string;*/ 
     break; 
    } 
} 

随着break 2可以停止两个循环。

+0

哇,非常好。谢谢。至于我的问题的第二部分,如果$关键字是一个数组呢?或者我应该发表另一个问题? – Staphayne 2010-09-15 16:46:44