"4009"
{
"name" "Demon Blood Armor"
"prefab" "dota_item"
"item_slot" "armor"
"item_rarity" "uncommon"
"image_inventory" "econ/items/axe/demon_blood_armor"
"model_player" "models/items/axe/demon_blood_armor.mdl"
"set_parent_skin" "1"
"item_set" "axe_demon_blood"
"used_by_heroes"
{
"npc_dota_hero_axe" "1"
}
"attributes"
{
"kill eater score type"
{
"attribute_class" "kill_eater_score_type"
"value" "0"
}
}
"icon_portrait"
{
"PortraitPosition" "167.273041 -30.888405 184.089783"
"PortraitLookAt" "13.375854 173.726807 359.313354"
"PortraitFOV" "44.000000"
"PortraitFar" "1000.000000"
"PortraitLightPosition" "202.699997 -23.150000 308.170013"
"PortraitLightLookAt" "54.790001 171.699997 0.000000"
"PortraitLightFOV" "69.000000"
"PortraitLightDistance" "377.000000"
"PortraitLightColor" "0.900000 0.900000 0.900000"
"PortraitShadowColor" "0.070000 0.070000 0.070000"
"PortraitShadowScale" "1.000000"
"PortraitGroundShadowScale" "0.300000"
"PortraitAmbientOrigin" "79.070000 84.150002 25.320000"
"PortraitAmbientColor" "0.080000 0.150000 0.150000"
"PortraitAmbientScale" "1.000000"
"PortraitSpecularColor" "0.970000 0.070000 0.090000"
"PortraitSpecularDirection" "0.000000 0.000000 -1.000000"
"PortraitSpecularPower" "16.000000"
"PortraitBackgroundColor1" "1.000000 0.500000 0.500000"
"PortraitBackgroundColor2" "1.000000 0.800000 0.900000"
"PortraitBackgroundColor3" "0.000000 0.000000 0.000000"
"PortraitBackgroundColor4" "1.000000 0.500000 0.500000"
"PortraitBackgroundTexture" "vgui/econ/item_icon_bg"
"PortraitAnimationActivity" "1"
"PortraitAnimationCycle" "0.960000"
"PortraitAnimationRate" "0.000000"
"PortraitHideHero" "0"
}
}
Форум → Программирование → PHP для идиотов → Перегнать что-то в массив
Перегнать что-то в массив
-
Помогите определить что за код, выдран он из конфигурации игры от Valve, и его нужно перегнать в массив.
-
Окт. 13, 2012, 10:51 п.п., спустя 1 час 34 минуты 26 секунд
двоеточия проебаны, а так жейсонВысокоуровневое абстрактное говно -
-
Окт. 13, 2012, 11:26 п.п., спустя 22 минуты 13 секунд
А вот нехуя, все на месте.
двоеточия проебаны, а так жейсон -
Окт. 13, 2012, 11:28 п.п., спустя 2 минуты 7 секунд
ну вставил то ты без двоеточий.
А вот нехуя, все на месте.
двоеточия проебаны, а так жейсонСпустя 12 сек.если ты ваще понл о чем мы тут говорим и о каких двоеточиях.Сапожник без сапог -
Окт. 14, 2012, 12:04 д.п., спустя 35 минут 39 секунд
таки запятых тоже нетВысокоуровневое абстрактное говно -
Окт. 14, 2012, 12:52 д.п., спустя 47 минут 57 секунд
json_str_space_str_encode();- а их не слушай… как посоветуют вякого. Вообще развелось тут всяких… -
-
Окт. 14, 2012, 1:04 п.п., спустя 20 минут 56 секунд
Paktik, вооружись текстовым редактором и делай поиск-с-заменой, пока не получишь нужный массив.ιιlllιlllι унц-унц -
Окт. 14, 2012, 1:05 п.п., спустя 39 секунд
Paktik, не тупи, тебе уже сказали, расставь двоеточия и запятые да отдай жейсон парсеру, вот тебе и будет массив.Высокоуровневое абстрактное говно -
Окт. 14, 2012, 4:19 п.п., спустя 3 часа 14 минут 24 секунды
Неведомая хуйня, которая все сделает:
В случае, если имеются эскейпированные символы " в именах или значениях атрибутов, работать не будет$data = <<<DATA
"4009"
{
"name" "Demon Blood Armor"
"prefab" "dota_item"
"item_slot" "armor"
"item_rarity" "uncommon"
"image_inventory" "econ/items/axe/demon_blood_armor"
"model_player" "models/items/axe/demon_blood_armor.mdl"
"set_parent_skin" "1"
"item_set" "axe_demon_blood"
"used_by_heroes"
{
"npc_dota_hero_axe" "1"
}
"attributes"
{
"kill eater score type"
{
"attribute_class" "kill_eater_score_type"
"value" "0"
}
}
"icon_portrait"
{
"PortraitPosition" "167.273041 -30.888405 184.089783"
"PortraitLookAt" "13.375854 173.726807 359.313354"
"PortraitFOV" "44.000000"
"PortraitFar" "1000.000000"
"PortraitLightPosition" "202.699997 -23.150000 308.170013"
"PortraitLightLookAt" "54.790001 171.699997 0.000000"
"PortraitLightFOV" "69.000000"
"PortraitLightDistance" "377.000000"
"PortraitLightColor" "0.900000 0.900000 0.900000"
"PortraitShadowColor" "0.070000 0.070000 0.070000"
"PortraitShadowScale" "1.000000"
"PortraitGroundShadowScale" "0.300000"
"PortraitAmbientOrigin" "79.070000 84.150002 25.320000"
"PortraitAmbientColor" "0.080000 0.150000 0.150000"
"PortraitAmbientScale" "1.000000"
"PortraitSpecularColor" "0.970000 0.070000 0.090000"
"PortraitSpecularDirection" "0.000000 0.000000 -1.000000"
"PortraitSpecularPower" "16.000000"
"PortraitBackgroundColor1" "1.000000 0.500000 0.500000"
"PortraitBackgroundColor2" "1.000000 0.800000 0.900000"
"PortraitBackgroundColor3" "0.000000 0.000000 0.000000"
"PortraitBackgroundColor4" "1.000000 0.500000 0.500000"
"PortraitBackgroundTexture" "vgui/econ/item_icon_bg"
"PortraitAnimationActivity" "1"
"PortraitAnimationCycle" "0.960000"
"PortraitAnimationRate" "0.000000"
"PortraitHideHero" "0"
}
}
DATA;
$result = '{'.preg_replace('/((:\s"[^"]+")|})(?=\s*[^}\s])/s','\1,',preg_replace('/^\s*("[^"]+")\s+(("[^"]+")|{)$/m','\1: \2',$data)).'}';
var_dump(json_decode($result, true));
Кстати да, регулярки нужно запретить на законодательном уровнеWork, buy, consume, die -
Окт. 14, 2012, 4:46 п.п., спустя 26 минут 24 секунды
Кстати да, регулярки нужно запретить на законодательном уровне
почему?Сапожник без сапог -
Окт. 14, 2012, 5:28 п.п., спустя 42 минуты 13 секунд
потому что нихнена не понятно, вот взгялув на предпоследнюю строку в коде с ходу можешь сказать, что оно делает, и как оно работает? =)Work, buy, consume, die -
Окт. 14, 2012, 7:12 п.п., спустя 1 час 43 минуты 40 секунд
Nyaah, а чё юзать тогда? да и комментарии никто не отменял… -
Окт. 14, 2012, 7:54 п.п., спустя 42 минуты
Nyaah, да блин, почему регулярка без каментов? незачетιιlllιlllι унц-унц
Пожалуйста, авторизуйтесь, чтобы написать комментарий!