我有一種情況,即返回數據庫結果並基於搜索詞在頁面上顯示它們。這部分工作正常,但我想通過將這些搜索條件包裝在span標籤中來突出顯示。我開始編寫一個函數,在每個使用str_replace函數的結果上調用該函數,但後來我發現這也會影響HTML標記中的任何文本。有沒有人有一個功能,他們用來有效地做到這一點?我使用PHP 4. 謝謝!突出顯示搜索字詞
Q
突出顯示搜索字詞
0
A
回答
0
如果你正在返回結果和顯示它們,那麼你不應該有訪問原始數據之前,它在HTML中攪出?如果是這樣,那麼通過在那裏添加span標籤來修改原始數據。
如果你說你的原始數據可以已經有它的HTML,您可以使用正則表達式來檢測你是否是一個HTML標籤中,並使用了preg_replace,而不是str_replace函數。
其他選項:
--load結果爲DOM解析器和只能做更換葉子文本節點
上的操作 - 寫自己的解析器來跟蹤的,如果你是一個HTML標記內或不是
- 從結果中抽出所有的HTML標籤,放入 「[[[tag1]]] balha blah blah [[[tag2]]]」的佔位符,然後替換剩餘的文本,然後將您的標籤替換回
2
我曾經用Perl編寫的搜索,做到了像這樣(做了一個小翻譯PHP):
// Split up the full page content in pieces without `<` and `>`
preg_match_all("/([^<>]+)/", $pageContent, $matches);
foreach ($matches as $val) {
// Just print the $val if it was between <and>
if (preg_match("/<$val>/", $pageContent) { print "<$val>"; }
else {
// Do the replace
print str_replace("$searchString", "<span>$searchString</span>", $val);
}
}
你可以儘量避免使用正則表達式,如果:
// Split up the full page content in pieces with `<`
$matches = split("<", $pageContent);
foreach ($matches as $val) {
// Just print the $val if it was between <and>
if (stristr($pageContent, "<$val")) { print "<$val"; }
else {
// Do the replace
print str_replace("$searchString", "<span>$searchString</span>", $val);
}
}
難道不測試它,但應該是這樣的。
+0
str_replace函數是區分大小寫的。我想使用不區分大小寫的替換,但我只使用PHP4,所以我不能使用str_ireplace。 – 2009-04-17 15:24:37
3
我會去的亮點與JavaScript
$(document).ready(function(){
$('#your_results_list').removeHighlight().highlight('search_word');
}
這樣,你不惹源,用戶可以打開的亮點,如果你想等
相關問題
- 1. ASP.NET MVC - 在搜索結果中突出顯示搜索字詞
- 2. 在網絡搜索中突出顯示搜索字詞
- 3. Windows搜索 - IFilter搜索詞突出顯示
- 4. 突出顯示文本塊中的搜索字詞
- 5. 在richtextbox中突出顯示所有搜索的字詞
- 6. 突出顯示搜索TextBlock
- 7. 彈性搜索突出顯示API突出顯示所有馬賽克字
- 8. 在Vim中僅突出顯示搜索詞的一部分
- 9. 突出顯示在MVC中使用jQuery的搜索詞
- 10. 使用jQuery突出顯示Chrome之類的搜索詞
- 11. 在文本中搜索一個單詞並突出顯示它
- 12. 搜索詞突出顯示代碼不工作正確
- 13. jQuery在搜索上突出顯示單詞
- 14. jQuery突出顯示基於URL的搜索詞
- 15. 突出顯示的UITextField搜索(swift2)
- 16. mark.js突出顯示特定字詞
- 17. 文本搜索 - 突出顯示搜索短語
- 18. 如何禁用cts:在搜索中突出顯示:搜索API?
- 19. GWT CellTree搜索:突出顯示搜索到的節點
- 20. 如何在Visual Studio中的文本中突出顯示搜索詞的出現?
- 21. 在GVIM中,我們如何搜索和突出顯示,同時保持以前的搜索突出顯示
- 22. 網站如何突出顯示您在搜索引擎中使用的搜索字詞?
- 23. 電子表格中的搜索字符串和突出顯示
- 24. 突出顯示給定搜索文本中的關鍵字
- 25. ASP.Net中的搜索關鍵字突出顯示
- 26. 突出顯示搜索中只有第一個字符串
- 27. 谷歌搜索顯示不含搜索字詞的搜索結果
- 28. .NET PDF查看組件允許搜索/突出顯示多個單詞
- 29. 如何使用彈性搜索在單詞中突出顯示ngram令牌
- 30. 如何在web瀏覽器控件中「突出顯示」搜索詞?
preg_replace是答案。我必須使用我修改後的大小寫不敏感,如下所示:$ pattern ='/('.getSearchTerm().')/i'; – 2009-04-17 16:24:56