如何从PHP中的URL中提取信息?

时间:2010-06-24 19:40:58

标签: php codeigniter

假设网址为http://example.com/product/3,我只想检索http://example.com/product/之后的内容。我发现了这个,它回应了域名,但我如何得到这三个域名。它的这种方法可靠吗?我也在使用codeIgniter。

<?php
function curPageURL() {
$pageURL = 'http';
$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;
}
?>

<?php
echo curPageURL();
?>

3 个答案:

答案 0 :(得分:4)

使用$this->uri->segment(n)。它的文档在这里:

http://codeigniter.com/user_guide/libraries/uri.html

对于您的代码,您将使用:

$curPageURL = $this->url->segment(2)

编辑:修正了代码中的错误。

答案 1 :(得分:2)

是的,使用codeigniter API的URI类。

base_url是段零,因此在您的情况下,产品将是段1和id段2。

$product_id = $this->uri->segment(2)

正如chetan所说,用户指南中明确记录了这一点。

答案 2 :(得分:0)

您应该使用parse_url代替: http://php.net/manual/es/function.parse-url.php