2

我正在 WordPress 中构建一个画廊,我试图获取我的 URL 的特定部分以回显到 div 的 id 中。

这是我的网址:

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

我想隔离画廊的 id,它总是一个数字(在本例中为 1)。然后我想有一种方法可以在某处打印它,也许是以函数的形式。

4

3 回答 3

2

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

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

@Kristian 的解决方案将只返回 0-9 的数字,但只要您的 ID 用-符号和最后一个元素分隔,此函数将返回给定长度的 id。

所以,当你打电话

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

在您的情况下,它将回显1.

于 2011-06-27T23:07:30.970 回答
1

如果 ID 不总是相同的位数(如果您有任何大于 9 的 ID),那么您将需要一些健壮的东西,例如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.
}
?>
于 2011-06-27T23:47:57.240 回答
0

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

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

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

当然,您可以进行其他类型的字符串操作来获取字符串的最后一个字符。但这有效。

于 2011-06-27T22:40:06.043 回答