我有一種情況,即返回數據庫結果並基於搜索詞在頁面上顯示它們。這部分工作正常,但我想通過將這些搜索條件包裝在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. 在網絡搜索中突出顯示搜索字詞
- 2. ASP.NET MVC - 在搜索結果中突出顯示搜索字詞
- 3. gridview不突出顯示搜索詞
- 4. Windows搜索 - IFilter搜索詞突出顯示
- 5. 在richtextbox中突出顯示所有搜索的字詞
- 6. 正則表達式突出顯示搜索字詞
- 7. 突出顯示文本塊中的搜索字詞
- 8. 在找到的頁面上突出顯示搜索字詞
- 9. 突出顯示搜索TextBlock
- 10. 搜索/突出顯示單詞文檔中的特定單詞
- 11. 突出顯示搜索詞在MySQL php搜索重音字符也
- 12. 彈性搜索突出顯示API突出顯示所有馬賽克字
- 13. 在Vim中僅突出顯示搜索詞的一部分
- 14. jQuery突出顯示基於URL的搜索詞
- 15. jQuery在搜索上突出顯示單詞
- 16. 在文本中搜索一個單詞並突出顯示它
- 17. 設置多個textbox.SelectionStart值,突出顯示搜索詞
- 18. 突出顯示在MVC中使用jQuery的搜索詞
- 19. 搜索詞突出顯示代碼不工作正確
- 20. 搜索和突出顯示多關鍵詞
- 21. 突出顯示搜索詞在JavaScript中按照術語
- 22. 使用jQuery突出顯示Chrome之類的搜索詞
- 23. 在webview中突出顯示搜索詞android 4.0.4
- 24. mysql和php搜索突出顯示
- 25. 突出顯示搜索結果
- 26. 突出顯示部分搜索結果
- 27. 使用JQuery搜索和突出顯示
- 28. 在Elasticsearch中搜索突出顯示(javascript)
- 29. 突出顯示搜索Word中的VBA
- 30. 突出顯示的UITextField搜索(swift2)
preg_replace是答案。我必須使用我修改後的大小寫不敏感,如下所示:$ pattern ='/('.getSearchTerm().')/i'; – 2009-04-17 16:24:56