用php隔离url的一部分,然后在html元素中打印它

时间:2011-06-27 22:25:27

标签: php wordpress url isolation

我正在WordPress中构建一个库,我正在尝试抓取我的URL的特定部分以回显div的id。

这是我的网址:

http://www.url.com/gallery/truck-gallery-1

我想隔离画廊的id,它始终是一个数字(在这种情况下是1)。然后我想有办法在某个地方打印它,也许是以函数的形式。

3 个答案:

答案 0 :(得分:2)

您最好使用$_SERVER['REQUEST_URI']。由于它是URL中的最后一个字符串,因此您可以使用以下函数:

function getIdFromUrl($url) {
    return str_replace('/', '', array_pop(explode('-', $url)));
}

@Kristian的解决方案只会返回0-9之间的数字,但只要您的ID以-符号和最后一个元素分隔,此函数将返回给定任意长度的ID。 / p>

所以,当你打电话

 echo getIdFromUrl($_SERVER['REQUEST_URI']);

在您的情况下,它会回显1

答案 1 :(得分:1)

如果ID不一定是相同的位数(如果你有任何ID大于9)那么你需要像preg_match()那样强大的东西,或者使用字符串函数来修剪最后一个“ - ”字符。我可能会这样做:

<?php
$parts = parse_url($_SERVER['REQUEST_URI']);
if (preg_match("/truck-gallery-(\d+)/", $parts['path'], $match)) {
    $id = $match[1];
} else {
    // no ID found!  Error handling or recovery here.
}
?>

答案 2 :(得分:0)

使用$ _SERVER ['REQUEST_URI']变量来获取路径(请注意,这与主变量不同,后者返回类似http://www.yoursite.com的内容)。

然后将其分解为一个字符串并返回最后一个字符。

$path = $_SERVER['REQUEST_URI'];
$ID   = $path[strlen($path)-1];

当然,您可以执行其他类型的字符串操作来获取字符串的最终字符。但这很有效。