В продолжение предыдущей своей темы есть вопрос. При переходе на ссылку внешнего ресурса мне предлагают скачать файл типа 1.txt . После открытия вижу: Код (Text): {"order"=>{"id"=>1, "created_at"=>"2014-05-08T13:06:08.000+03:00", "updated_at"=>"2018-04-18T10:22:44.000+03:00", "type_order"=>"GO", "misce"=>"filia", "crash_date"=>"2014-04-30", "uved_date"=>"2014-05-05", "suma_zbytku"=>"0.0", "suma_expertyza"=>"0.0", "date_strah_akt"=>nil, "date_viplaty"=>nil, "regress"=>false, "regress_name"=>"до СК \"КРАЇНА\"", "risk"=>"dtp", "notes"=>"регрес можливо", "poster_id"=>23, "adjuster_id"=>23, "filial_id"=>1, "state"=>"otkaz_sbor_documentov", "key_timestamp"=>nil, "time_call"=>"14:45:00", "vigodonabyvach"=>nil, "date_nadhodg_GO"=>nil, "gorod"=>"Харків", "kod"=>"", "street"=>"пр-т. Московський ", "yregulir"=>false, "num_schem_dtp"=>nil, "degree_of_guilt"=>nil, "prog_strah"=>"", "strahovatel_id"=>1, "order_name"=>"ЦВ-2014-1", "crash_time"=>"14:30:00", "pis_uv_date"=>"2014-05-05", "damage_strah"=>"передня права частина", "suma_expert_ot"=>nil, "sb_s"=>false, "ur_s"=>false, "ex_s"=>false, "pp_s"=>false, "ny_s"=>false, "regress_type"=>"urik", "first_m"=>false, "last_m"=>false, "night_out_city"=>false, "naezd_dog"=>false, "second_man_leave"=>false, "no_damage_true"=>false, "damage_before"=>false, "vse_ok"=>false, "t_ny_s"=>false, "t_sb_s"=>false, "t_ur_s"=>false, "t_pp_s"=>false, "rezerv"=>"12000.0", "degree_of_damage"=>nil, "strahovik_victim"=>nil, "ins_num_victim"=>nil, "driver_fio"=>"Вільожний Євген Володимирович", "driver_date_birth"=>"1980-01-01", "driver_male"=>"male", "driver_ind_code"=>"11111111111", "driver_telephone"=>"0", "driver_adress"=>"Закарпатська обл.,м.Виноградів,вул.Лейзмана,27", "driver_status_osob"=>"fizik", "driver_resident"=>true, "ser_prava"=>"0", "nom_prava"=>"0", "driver_owner"=>false, "claim"=>false, "claim_to"=>nil, "need_perelicdocs"=>"[1,2,3,4,5,13,14,15,16,17,18,19,20,21,22]", "date_pod_zayav"=>nil, "plane_date_viplaty"=>nil, "avarkom"=>nil, "regress_type_sp"=>nil, "regress_edrpo"=>nil, "regress_adress"=>nil, "regress_phone"=>nil, "regress_plato"=>false, "regress_neplato"=>false, "regress_nekontakt"=>false, "regress_date_end"=>nil, "vreg_na_misci"=>false, "oglyad_na_misci"=>false, "oglyad_sk"=>false, "express_vypl"=>false, "zamov_nez_exp"=>false, "avariyniy_id"=>nil}, "strahovatel"=>{"id"=>1, "owner_fio"=>"Вільможний Володимир Самойлович", "owner_date_birth"=>"1980-10-01", "owner_male"=>"male", "owner_ind_code"=>"1111111111", "owner_adress"=>"----", "owner_status_osob"=>"fizik", "owner_resident"=>false, "ins_number"=>"АС/8763434 ", "property"=>"ВАЗ", "created_at"=>"2014-05-08T12:53:19.000+03:00", "updated_at"=>"2015-02-05T12:57:33.000+02:00", "gos_nomer"=>"05155КО", "god_vipyska"=>0, "owner_stag_vogd"=>10, "srok_deyst_policy_ot"=>"2013-10-12", "srok_deyst_policy_do"=>"2014-10-11", "date_oplat_policy"=>"2013-10-12", "franshiza"=>"1000.0", "filial_id"=>41, "owner_telephone"=>"---", "vin_code"=>"ХТА210630J1847429", "suma_strah"=>"50000.0", "suma_strah_plat"=>"268.52", "date_pidpus_policy"=>"2013-10-12", "sub_property"=>"21063", "zone_sale"=>nil}, "comments"=>[], "logs"=>[{"id"=>325415, "created_at"=>"2018-04-18T10:22:44.000+03:00", "updated_at"=>"2018-04-18T10:22:44.000+03:00", "ht_key"=>nil, "message"=>"Невідома транзакція типу zip", "user_id"=>115, "logable_id"=>1, "logable_type"=>"Order", "action"=>"zip", "params"=>"{\"key\":\"F26CkhfvV_BaudmGZRMlXOdQP6PTCEfvKljPMkWZne0V_taLj2euleGrQud7Qhid||115\",\"export\":\"true\",\"controller\":\"orders\",\"action\":\"zip\",\"id\":\"1\"}"}, {"id"=>325413, "created_at"=>"2018-04-18T10:22:08.000+03:00", "updated_at"=>"2018-04-18T10:22:08.000+03:00", "ht_key"=>nil, "message"=>"Невідома транзакція типу zip", "user_id"=>115, "logable_id"=>1, "logable_type"=>"Order", "action"=>"zip", "params"=>"{\"key\":\"F26CkhfvV_BaudmGZRMlXOdQP6PTCEfvKljPMkWZne0V_taLj2euleGrQud7Qhid||115\",\"export\":\"true\",\"controller\":\"orders\",\"action\":\"zip\",\"id\":\"1\"}"}, {"id"=>325412, "created_at"=>"2018-04-18T10:21:05.000+03:00", "updated_at"=>"2018-04-18T10:21:05.000+03:00", "ht_key"=>nil, "message"=>"Невідома транзакція типу zip", "user_id"=>115, "logable_id"=>1, "logable_type"=>"Order", "action"=>"zip", "params"=>"{\"key\":\"F26CkhfvV_BaudmGZRMlXOdQP6PTCEfvKljPMkWZne0V_taLj2euleGrQud7Qhid||115\",\"export\":\"true\",\"controller\":\"orders\",\"action\":\"zip\",\"id\":\"1\"}"}, {"id"=>325411, "created_at"=>"2018-04-18T10:20:50.000+03:00", "updated_at"=>"2018-04-18T10:20:50.000+03:00", "ht_key"=>nil, "message"=>"Невідома транзакція типу zip", "user_id"=>115, "logable_id"=>1, "logable_type"=>"Order", "action"=>"zip", "params"=>"{\"key\":\"F26CkhfvV_BaudmGZRMlXOdQP6PTCEfvKljPMkWZne0V_taLj2euleGrQud7Qhid||115\",\"export Помогите это чудо преобразовать в массив.
тогда explode() --- Добавлено --- тут в принципе видно вложенность массива, можно приспособиться чтобы его перестроить заново.
Этот вариант тоже попробовал только тогда черт ногу сломить в многомерности и возможна потеря данныхесли последующие файлы будут отличаться по структуре. Их будет около 17000. Вот думал может я чего то не знаю и может есть какае то определенная функция которая может инициализировать строку и преобразовать ее в массив.Ладно буду копать далее
Я бы разложил в блокнотике эту строчку для себя в дерево, видно, что order это первый массив в который складываются остальные, заполняете его, а пом по уже внутри добываете остальные массивы или просто берете, что вам нужно.
Я вот тоже так подумал что так будет проще. Самое интересное что мне городят что это json массив но он частично похож на json
Значит все же не дурак)). Большое спасибо за помощь. Если не договорюсь с админами ресурса то буду разбивать explode на части и выделять json формат и отдельно обыкновенный массив. Спасибо еще раз
Именно эта функция и выдает NULL. Какой именно трабл? Я привел лишь часть данных которые лежат в txt файле поэтому сообщение обрезано
Вот тут лежит код целеком. Дайте пожалуйста варианты как его распарсить, а еще лучше сложить все это в массив http://forit.leoweb.site/1_json1.txt
Просто нужно разуть глаза и внимательно посмотреть чем разделяется ключ и значение. Там не json. Там вместо двоеточия использется => и nil, а не null. --- Добавлено --- Костыль чтоб поправить синтаксис в удобоваримый для json_decode. PHP: $str = file_get_contents('1_json1.txt'); $str = str_replace('=>nil', '=>null', $str); $str = preg_replace('~\G(?:[^"]*"(?:[^"\\\\]+|\\\\.)*+")+?\K=>~', ':', $str); $d = json_decode($str, true); var_dump($d);
Все верно.То что это не JSON понятно с первой строчки. Вот собственно трабл в том что эти данные мне надо стянуть с удаленного ресурса, подготовить их к заливке в нашу систему и потом еще подтянуть файлы под каждое дело.Таких файлов у меня 17000 - тоесть сами понимаете что вручную я этого точно не сделаю. Теперь вот сижу и думаю как разобрать этого "слона". --- Добавлено --- Самое интересное что Ваш вариантя ранее пробовал только не учел проблему с nil и у меня не работало, а с Вашим вариантом все аж полетело)).Сейчас более детально разберусь что к чему получилось и отпишусь.Большое спасибо
А что это за формат такой? И не json и не массив странно. Я бы предложил заменит => на : но там еще и данные не полные
Все равно вопрос открыт. Чем это сделали и зачем?) --- Добавлено --- я так понимаю это "фича" wordpress? http://leoweb.site/
Самому интересно чем это сделали. Сама система удаленного ресурса откуда беру файл написана Ruby On Rails. Почему мне выдают в таком формате файл я понимаю (политическая ситуация между компаниями).Но вот как это сделали для меня этозагадка
Вы знаете мне кажется что тут более вмешательство ручек админов но может и руби дает такое. Благодаря Emilien моя ситуация пошла на улучшение. Сейчас делаю структуру данных под требования нашей системы и буду сегодня стартовать переливку данных.