Я пытаюсь получить содержимое некоторых исходных файлов с одной и той же страницы и сохранить их в MySQL. Некоторые файлы имеют разные имена свойств, чем другие, поэтому более «авто» код поможет. Я вставляю ниже пример исходного файла, но вы можете видеть его вживую с моими кодами ниже.
Пример исходного файла:
{ Trims: [ { "model_id":"15155" ,"model_make_id":"ford" ,"model_name":"Taurus" ,"model_trim":"" ,"model_year":"2000" ,...(all available model fields are included) }, { "model_id":"15073" ,"model_make_id":"ford" ,"model_name":"Taurus" ,"model_trim":"3.0" ,"model_year":"2000" ,...(all available model fields are included) }, {etc...} }]}
Ожидаемый результат:
Я хочу напечатать имена свойств только один раз, потому что они имеют одинаковый номер для всего исходного файла.
model_id model_make_id model_name model_trim model_year ...and so on.... ------ and afterwards all the values 15155 ford Taurus 2000 ...and so on... 15073 ford Taurus 3.0 2000 ...and so on...
ПЕРВАЯ обходная попытка: http://codepad.viper-7.com/dZDxoo
Я могу напечатать имена свойств и значения. Но с проблемой. Мне нужно только один раз имена свойств, и это нормально. Но он печатает только первый блок VALUES, а не другие VALUES. Если я могу распечатать все, это мое решение. Количество имен свойств из разных исходных файлов, в которых я работаю, различно, поэтому это помогает мне автоматически получать имена.
<?php $json = file_get_contents('http://www.carqueryapi.com/api/0.3/?cmd=getTrims&year=2007&make=mini'); $vres = array('{"Trims":' , '}]}'); $allakse = array("" , "}]"); $json = str_replace($vres, $allakse, $json); $cars = json_decode($json, true); foreach ($cars[0] as $key => $car) { echo "$key", "\n"; } echo"<br><br>"; foreach ($cars[0] as $key => $car) { echo "$car", "\n"; }
на<?php $json = file_get_contents('http://www.carqueryapi.com/api/0.3/?cmd=getTrims&year=2007&make=mini'); $vres = array('{"Trims":' , '}]}'); $allakse = array("" , "}]"); $json = str_replace($vres, $allakse, $json); $cars = json_decode($json, true); foreach ($cars[0] as $key => $car) { echo "$key", "\n"; } echo"<br><br>"; foreach ($cars[0] as $key => $car) { echo "$car", "\n"; }
ВТОРАЯ обходная попытка: http://codepad.viper-7.com/7bcDUx
Поскольку исходные файлы имеют другое количество свойств, наличие фиксированного for each - echo loop
не поможет мне. Это важно, потому что я хочу получить имена свойств автоматически из каждого исходного файла. Кроме того, я не могу напечатать имена свойств, просто значения.
<?php $json = file_get_contents('http://www.carqueryapi.com/api/0.3/?cmd=getTrims&year=2007&make=mini'); $cars = json_decode($json, true); foreach($cars['Trims'] as $car){ echo $car['model_body'].'<br/>'; }
Что делать, чтобы отображать все значения из всех блоков, а не только из первого?