2011-11-25 28 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

相关问题