2011-11-25 26 views
0

我想在我的PHP Web應用程序中使用jQuery自動完成插件。 我有一個在搜索數據的服務器上的JSON文件。它看起來像這樣:在PHP中使用JSON搜索服務器端實現的自動完成jQuery插件

{ 
    "_E161": { 
     "keggId":"rn:R05223", 
     "abbrev":"ADOCBLS", 
     "name":"Adenosylcobalamin 5'-phosphate synthase", 
     "equation":"agdpcbi[c] + rdmbzi[c] -> h[c] + adocbl[c] + gmp[c] ", 
    }, 
    "_E163": { 
     .... 
    } 
} 

我想通過這個JSON文件(具有3500項)與PHP腳本,從jQuery自動完成插件獲取搜索詞。然後將包含搜索項的條目返回給客戶端以填充自動完成。 什麼是更好的實現方式?我的第一個猜測是循環瀏覽JSON文件並使用strpos()但我懷疑這可能會很慢?

+0

我想看看有多少KB的是整個文件最終被你帶的空白和gzip之後。有一個很好的機會,它足夠小,只是服務於整個文件,只是完全客戶端純閃電快速自動完成。 – goat

+0

@chris這正是我現在想要做的 – lanan

回答

0

你還可以充分利用preg_grep(返回匹配模式的數組項),

// sanitize, and perform some processing to ensure is a valid regex pattern 
$pattern = ...; 

$json = json_decode(...); 
$arr = array(); 
foreach ($json as $key=>$arr) 
{ 
    $arr[$key] = $arr['name']; 
} 
$matches = preg_grep("/$pattern/i", $arr); 
// $matches will hold the matches 
// and you refer back to the $json using associate key 
+0

謝謝!有效!但最終使用客戶端過濾。 – lanan

相關問題