PHP - 實現類似於百度的實時搜尋
XML檔案:
PHP服務端:
$xmlDoc=new DOMDocument(); //建立了一個 DOMDocument-Object例項
$xmlDoc->load("links.xml"); //載入
$link = $xmlDoc->getElementsByTagName('link'); //返回所有link節點的元素
$inputInfo = $_GET["inputInfo"]; // 從 URL 中獲取引數inputInfo的值
if (strlen($inputInfo)>0)
{ //從 xml 檔案中查詢資料
$hint="";
for($i=0; $i<($link->length); $i++)
{ //找到所有的title和url
$title = $link -> item($i) -> getElementsByTagName('title');
$url = $link -> item($i) -> getElementsByTagName('url');
if ($title -> item(0) -> nodeType == 1) //可以理解為有這個元素
{ // 和輸入的值進行匹配
if (stristr($title -> item(0) -> childNodes -> item(0) -> nodeValue, $inputInfo))
{
if ($hint=="") //為空
{
$hint="<a href='".$url -> item(0) -> childNodes -> item(0) -> nodeValue .
"' target='_blank'>".$title -> item(0) -> childNodes -> item(0) -> nodeValue ."</a>";
} else {
$hint=$hint . "<br/><a href='".
$url -> item(0) -> childNodes -> item(0) -> nodeValue."' target='_blank'>".
$link -> item(0) -> childNodes -> item(0) -> nodeValue ."</a>";
}}}}}
if ($hint==""){
echo "無結果";
}else{
echo $hint;
}
網頁端:(這裡只貼上js程式碼)
function showResult(str)
{
if (str.length==0)
{
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) //state : OK
{ //receive
document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","livesearch.php?inputInfo="+str,true); //send
xmlhttp.send();
}
<form>
<input type="text" size="30" onkeyup="showResult(this.value)">
<div id="livesearch"></div>
</form>
OK!現在就可以愉快的玩耍了!
相關文章
- 【搜尋引擎】 PostgreSQL 10 實時全文檢索和分詞、相似搜尋、模糊匹配實現類似Google搜尋自動提示SQL分詞Go
- GetX 實現類似微信轉發搜尋多選好友
- 百度和優酷的搜尋體驗改善,類似Google Instant搜尋Go
- PHP實現搜尋附近的人PHP
- 海量資料搜尋---demo展示百度、谷歌搜尋引擎的實現谷歌
- elasticsearch實現基於拼音搜尋Elasticsearch
- 基於PostgreSQL實時干預搜尋排序實踐SQL排序
- 基於Elasticsearch實現搜尋建議Elasticsearch
- 實現類似QQ的即時通訊程式(十一)
- Blazor如何實現類似於微信的Tab切換?Blazor
- JS實現類似於微博秀的GitHub掛件JSGithub
- 實現站內百度搜尋跳轉效果
- [轉載] PHP 基於字典樹演算法實現搜尋聯想功能PHP演算法
- PHP 使用 QueryList 輕鬆實現一個百度網盤資源搜尋引擎PHP
- 基於 Kafka 的實時數倉在搜尋的實踐應用Kafka
- 關閉百度搜尋時的百度熱榜廣告(非常實用)
- Meteor+MongoDB 實現簡單的即時搜尋MongoDB
- 用PHP來實現二分搜尋樹(BST)PHP
- Laravel 下 TNTSearch+jieba-PHP 實現中文全文搜尋LaravelJiebaPHP
- 直播開發app,實時搜尋、搜尋引擎框APP
- Elasticsearch搜尋功能的實現(五)-- 實戰Elasticsearch
- ASP智慧搜尋的實現 (轉)
- 簡單實現類似Spring的Aop原理實現Spring
- QT實現類似於網頁step 選單效果QT網頁
- PostgreSQL類似OracleMERGE功能的實現SQLOracle
- 在dotnet core實現類似crontab的定時任務
- 基於Kafka和Elasticsearch構建實時站內搜尋功能的實踐KafkaElasticsearch
- Tantivy與Quickwit:類似Lucene的Rust全文搜尋引擎庫UIRust
- Laravel + Elasticsearch 實現中文搜尋LaravelElasticsearch
- Elasticsearch 實現簡單搜尋Elasticsearch
- Jquery + Bootstrap 實現搜尋框jQueryboot
- 實現延遲搜尋功能
- 前端實時搜尋框模擬前端
- 基於註解的 PHP 列舉類實現PHP
- Elasticsearch 近實時搜尋的底層原理Elasticsearch
- python實現時間的加減,類似linux的date命令PythonLinux
- 基於Java、Kafka、ElasticSearch的搜尋框架的設計與實現JavaKafkaElasticsearch框架
- jsonp跨域獲取資料實現百度搜尋JSON跨域