阅读JSON文件?

时间:2013-08-16 22:00:57

标签: php json parsing

所以我想用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。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用json_encodearray_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);