如果我有这样的网址:www.example.com/product/yellow-bed
是否可以从网址中检索产品名称?
例如,如果url与www.example.com?page=product&product_name=yellow_bed
类似,我会使用:
$product = $_GET['page'];
$product_name = $_GET['product_name'];
但是如何从www.example.com/product/yellow-bed
获得它?
答案 0 :(得分:4)
通过“$ _SERVER [”REQUEST_URI“]”获取URI。将字符串转换为具有爆炸的数组:
$uri = 'www.google.com/product/yellow-bed' //uri = $_SERVER["REQUEST_URI"]
$uriArray = explode('/', $uri);
$product = $urlArray[1];
$product_name = $urlArray[2];
0 = www.google.com,1 =产品,2 =黄床
PHP手册:array explode ( string $delimiter , string $string [, int $limit ] )
。
答案 1 :(得分:1)
一些php框架(如CodeIgniter)已经实现了这个功能。 从来没有你可以看到这里:http://erunways.com/simple-php-get-uri-or-segment-element/,这应该可以解决你的问题。
答案 2 :(得分:0)
您可以使用$_SERVER['QUERY_STRING']
获取完整的URI,然后将其拆分。或者您使用.htaccess并在内部重写网址。
答案 3 :(得分:0)
尝试$_SERVER[ 'PATH_INFO' ]
或$_SERVER[ 'REQUEST_URI' ]
。
答案 4 :(得分:0)
你应该看看$_SERVER['REQUEST_URI']
。在您的示例中,这将是/product/yellow-bed
。
然后,您可以使用strrpos()
,explode() or
preg_match()`(或其他字符串操作函数)来提取您想要的内容。
答案 5 :(得分:0)
您可以使用以下函数来检索当前网址:
<?php
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
现在你可以使用parse_url获取url并解析其元素:http://php.net/manual/en/function.parse-url.php