У меня есть php-файл, который принимает данные JSON, поступающие с URL. Я хочу, чтобы некоторые ключи и значения были включены в мою локальную базу данных, а оставшиеся ключи и значения были загружены в базу данных OpenStreetMap (OSM).
Я хочу вызвать соответствующий файл php с параметрами GET из основного файла php.
Мой сценарий выглядит так:
<?php
$url = "something";
$parts = file_get_contents($url);
$json = json_decode($parts);
//echo(sizeof($json));
$private = array("people_count");
$to_osm = array("Rent","drinking_water","Shop","communication","Energy_source","waste_management","Internet_access","emigrants","number_storey","adboard");
foreach ($json as $object) {
$get_url = "?id=";
foreach ($object as $key => $value) {
if ($key == "osmid") {
$id = $value;
$geom = "Polygon";
$get_url.=$id."&geom=".$geom;
//print_r($get_url);
}
elseif (in_array($key, $to_osm)) {
$get_url.="&".$key."=".$value;
}
}
print_r("updateOSM.php".$get_url);
}?>
Я пытался включить, но это не сработало. Я не могу перенаправить свою страницу, поскольку я выполняю цикл.
Любая помощь будет оценена.
попробуй это
header('Location: updateOSM.php'.$get_url);
exit();
Тем не мение
header('Location: updateOSM.php'.$get_url);
Это правильное решение, потому что после того, как вы нажмете это утверждение, вы сразу перейдете на другую страницу, тормозя следующее выполнение, так что вам не нужно exit()
Или же die()
Я попробовал это:
<?php
$url = "something";
$parts = file_get_contents($url);
$json = json_decode($parts);
$private = array("people_count");
$to_osm = array("Rent","drinking_water","Shop","communication","Energy_source","waste_management","Internet_access","emigrants","number_storey","adboard");
foreach ($json as $object) {
$get_url = "?id=";
foreach ($object as $key => $value) {
if ($key == "osmid") {
$id = $value;
$geom = "Polygon";
$get_url.=$id."&geom=".$geom;
//print_r($get_url);
}
elseif (in_array($key, $to_osm)) {
$get_url.="&".$key."=".$value;
}
}
header('Location: updateOSM.php'.$get_url);
}
exit();
?>
Перенаправленный URL выглядит так:
updateOSM.php? ID = *******&геом = Многоугольник&Аренда = нет&drinking_water = public_supply&Магазин = нет&связь = да&Energy_source = солнечная&waste_management = septic_tank&Internet_access = да&эмигранты = нет&number_storey = 7&adboard = да
Идентификатор, который он показывает, является последним индексом моего массива $ json. И когда я проверил изменения функции в самом osm.org, я увидел только последнюю измененную функцию, а не другие.
Я хочу, чтобы updateOSM принимал каждый элемент массива, а не только последний, который вносил изменения.