我有一个php文件,它接收来自网址的JSON数据。我希望将一些键和值包含在我的本地数据库中,并将剩余的键和值上载到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);
}
?>
我试过包括但是没有用。我正在运行循环时无法重定向我的页面。
任何帮助都将不胜感激。
答案 0 :(得分:1)
试试这个
header('Location: updateOSM.php'.$get_url);
exit();
答案 1 :(得分:0)
无论如何
header('Location: updateOSM.php'.$get_url);
是正确的解决方案,因为在您点击此声明后,您将转到另一页立即制动下一次执行,所以您不需要exit()
或die()
答案 2 :(得分:0)
我试过了:
<?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();
?>
重定向的网址如下所示:
?updateOSM.php ID = *******&安培;的geom =多边形&安培;出租=否安培; drinking_water = public_supply&安培;商店=否安培;通信= YES&安培; Energy_source =太阳能&安培; waste_management = septic_tank&安培; Internet_access = YES&安培;移民=否安培; number_storey = 7和; adboard =是
它显示的id是我的数组$ json的最后一个索引。当我在osm.org本身检查了该功能的变化时,我发现只有最后一个功能被修改而不是其他功能。
我想要的是updateOSM使每个数组元素不仅仅是最后一个数组元素进行更改。