Разбор файлов формата Valve в PHP - PullRequest
1 голос
/ 16 февраля 2012

Я полностью застрял в том, как начать синтаксический анализ файлов такого типа в PHP. Это своего рода массивы с переменным количеством подмассивов. https://developer.valvesoftware.com/wiki/KeyValues

Файл примера.

"itembuilds"

{

    "author"        "Valve"
    "hero"          "npc_dota_hero_axe"
    "Title"         "Recommended items for Axe"
    "Items"
    {
        "#DOTA_Item_Build_Starting_Items"
        {
            "item"   "item_stout_shield"
            "item"   "item_flask"
            "item"   "item_tango"
            "item"   "item_courier"
        }
        "#DOTA_Item_Build_Early_Game"
        {
            "item"   "item_boots"
            "item"   "item_ring_of_health"
            "item"   "item_tango"
            "item"   "item_tango"
        }
        "#DOTA_Item_Build_Core_Items"
        {
            "item"   "item_blink"
            "item"   "item_vanguard"
        }
        "#DOTA_Item_Build_Luxury"
        {
            "item"   "item_heart"
            "item"   "item_blade_mail"
        }
    }
}

Другой пример файла.

"dota_shops"

{

    "consumables"
    {
        "item"      "item_clarity"
        "item"      "item_tango"
        "item"      "item_flask"
        "item"      "item_smoke_of_deceit"
        "item"      "item_tpscroll"
        "item"      "item_dust"
        "item"      "item_courier"
        "item"      "item_flying_courier"
        "item"      "item_ward_observer"
        "item"      "item_ward_sentry"
        "item"  "item_bottle"                           
    }
        "something"
        {
                "Key" "value"
                "Key2" "value"
        }
}

Ответы [ 2 ]

0 голосов
/ 28 апреля 2014

Там я нашел онлайн.http://rossengeorgiev.github.io/vdf-parser/

В репозитории есть реализации js и python, не должно быть слишком сложно перенести их на PHP.

0 голосов
/ 22 февраля 2014

Поздний ответ, но только что видел это. Данные в вопросе находятся в (Формат данных клапана) [https://developer.valvesoftware.com/wiki/KeyValues],, также называемый форматом KeyValues, и очень напоминает JSON.

Около года назад я написал этот скрипт, который может конвертировать данные VDF в действительный JSON. Вы можете использовать его один раз и сохранить сгенерированный JSON или вызывать его в любое время, когда вам нужен JSON из VDF.

https://gist.github.com/AlienHoboken/5571903

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...