Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从uri中获取段_Php_Url_Rest - Fatal编程技术网

Php 如何从uri中获取段

Php 如何从uri中获取段,php,url,rest,Php,Url,Rest,我的问题和出错的地方 是当我有两段时 示例:www.xxx.nl/products/id 我在htaccess里有这个 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 是否有解决方案,或者这是主机造成的 提前感谢Richard,请求的URI路径和查询位于。您可以通过以下方式获得分

我的问题和出错的地方

是当我有两段时

示例:www.xxx.nl/products/id

我在htaccess里有这个

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
是否有解决方案,或者这是主机造成的


提前感谢Richard,请求的URI路径和查询位于。您可以通过以下方式获得分段:

$_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
$segments = explode('/', ltrim('/', $_SERVER['REQUEST_URI_PATH']));

您可以使用该函数解析任何url并将其分为相关部分(假设它是有效的url)。

传递到index.php的url永远不会包含主机名、端口或查询字符串。(来源:)

由于url的其余部分由正斜杠分隔,因此可以使用将其转换为数组

$uri_segments = explode('/', $_GET['url']);

注意:数组实际包含的内容取决于重写规则发生的位置。如果它位于.htaccess文件或
块中,则匹配块的某些部分将丢失(url中当前目录之前的任何部分)。

但是为什么不在get变量url中,只是为了澄清,当请求的url已经存在时,您不需要在参数中传递它。@Gumbo,看起来我太快了。我可以处理段。只有页面不再显示正常。但是我不需要这个页面,我只需要把xml发回。很抱歉,它应该把这些片段放在get变量中,并按照我的想法正常显示页面?谢谢,我需要它来提供Web服务。我仍然不能完全理解它,因为我有使用REST的能力,我现在可以使用一个类作为第一个片段,第二个用于方法,第三个用于任何其他变量。上面的问题与一个不是以斜杠开头的css文件有关。现在我可以去弄清楚剩下的了。