所以我想用PHP搜索JSON文件。 json链接:http://media1.clubpenguin.com/play/en/web_service/game_configs/paper_items.json。我只是将JSON文件放在我的网络服务器中。继承人我的剧本:
<?php
$query = $_GET['s'];
$terms = explode(' ', $query);
$results = array();
foreach(file('items.json') as $line) {
$found = true;
foreach($terms as $term) {
if(strpos($line, $term) == false) {
$found = false;
break;
}
}
if($found) {
$results[] = $line;
} else {
}
}
print_r($results);
问题是它显示了WHOLE json文件而不是我的$ query。我该怎么做才能解决这个问题?
答案 0 :(得分:1)
您可以使用json_encode,array_filter和一个闭包(PHP 5.3+)来完成此任务。
$obj = json_decode(file_get_contents("http://media1.clubpenguin.com/play/en/web_service/game_configs/paper_items.json"), true);
$termStr = "ninja kiwi";
$terms = explode(" ", $termStr);
$results = array_filter($obj, function ($x) use ($terms){
foreach($terms as $term){
if (stripos($x["label"], $term) ||
stripos($x["paper_item_id"], $term))
{
return true;
}
}
return false;
});
echo json_encode($results);