如何从网址获取价值?

时间:2012-01-23 12:15:57

标签: php

如果我有这样的网址: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获得它?

6 个答案:

答案 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