我正在尝试通过使用http_build_query从两个数组的所有值生成URL:
数组1:
$server = array($_GET["server"]);
数组2:
$data = array($_GET["z_koord"],
$_GET['x_koord'],
$_GET["y_koord"],);
我当前编写的用于生成URL的代码:
$server = array(''=>$_GET["server"]);
$data = array($_GET["z_koord"],
$_GET['x_koord'],
$_GET["y_koord"],);
$url = '.tile.openstreetmap.org';
$saite = http_build_query($server). $url ."/". http_build_query($data,'','/').".png";
以下是由上面的代码组成的URL:
=c.tile.openstreetmap.org/0=6/1=90/2=110.png
这是我要制作的url结构:
c.tile.openstreetmap.org/6/90/110.png
我查看了有关该主题的其他帖子,例如this one和this,但这些帖子对于解决我的问题并不完全有用。
因此,我希望知识渊博的人可以向我展示解决方案,或者至少提示如何接近解决方案。
答案 0 :(得分:2)
您可以使用implode():
$server = $_GET["server"];
$data = [$_GET["z_koord"],
$_GET['x_koord'],
$_GET["y_koord"]];
$url = '.tile.openstreetmap.org';
$saite = "$server/$url/" . implode('/', $data) . ".png";
我不确定这段代码中的某些内容,但是implode()
应该可以完成工作。
答案 1 :(得分:1)
您以错误的方式使用http_build_query
。您只是不需要。有2个选项,您可以使用其中任何一个。
使用implode()
,这是完成工作的最简单方法。
$server = array(
'' => $_GET['server']
);
$data = array(
$_GET['z_koord'],
$_GET['x_koord'],
$_GET['y_koord'],
);
$url = $server . '.tile.openstreetmap.org';
$saite = $url . '/' . implode("/", $data) . '.png';
使用“参数”直接创建URL,如下所示:
$url = '.tile.openstreetmap.org' .;
$saite = $_GET['server'] . $url . '/' . $_GET['z_koord'] .'/'. $_GET['x_koord'] . '/'.$_GET['y_koord'] . '.png';