2010-05-12 46 views
1

我想知道如何搜索和谷歌一样串组显示字符串显示我们查的单词...搜索和显示字符串

从谷歌

下面的例子搜索词是谷歌图书

结果

搜索和预览数百万来自世界各地的使用谷歌图书搜索图书馆和出版商的图书。发现新的最爱或挖掘一个古老的经典。

我愿做这种类型之一...

感谢,并提前

+0

所以,你要一个大的字符串中搜索文本略有不同? – 2010-05-12 07:16:12

+0

是的,我想要这种类型的搜索。 – 2010-05-12 07:24:15

+0

你是否知道这个问题的答案。 – 2010-05-12 07:49:31

回答

2
$searchString = "Google Book"; 

$originalString = "Search and preview millions of books from libraries and publishers worldwide using Google Book Search. Discover a new favorite or unearth an old classic."; 

$outputString = preg_replace("/($searchString)/i",'<strong>${1}</strong>',$originalString); 

这应该做一个区​​分大小写的搜索,并使其成为通过包裹搜索字符串的替换<strong>标签。

但是,请注意,如果您提供搜索字符串“Google图书”(请注意's'),它将不匹配。这是非常基本的,没有任何词汇来解释单词/复数等的变化,也不检查单词边界(即,您可以搜索'oogl'并且它将匹配于e)。根据您的要求,这可能已经足够。

+0

是的,它是正确的,但我只需要显示150个字符。所以然后如何改变这种编码..解释我.... – 2010-05-12 07:33:47

+0

之后,使用这样的, $ outputstring = substr($ outputString,0,150); – Karthik 2010-05-12 07:35:14

+0

假设我的总字符串是5000个字符,我搜索的字符串是我不知道位置的地方。在这个时间hw我可以得到正确的位置...多数民众赞成我问我可以得到特定的150 characher从字符串,也包含我搜索到的字... – 2010-05-12 07:48:58

1

你也可以使用strtr,它可以在大块文本上更快。

$text = strtr($text, array("search term" => "<b>search term</b>")); 

小心使用数组作为参数,这个函数的行为使用字符串参数