我正在 WordPress 中构建一个画廊,我试图获取我的 URL 的特定部分以回显到 div 的 id 中。
这是我的网址:
http://www.url.com/gallery/truck-gallery-1
我想隔离画廊的 id,它总是一个数字(在本例中为 1)。然后我想有一种方法可以在某处打印它,也许是以函数的形式。
你应该更好地使用$_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
.
如果 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.
}
?>
使用 $_SERVER['REQUEST_URI'] 变量来获取路径(请注意,这与主机变量不同,它返回类似http://www.yoursite.com的内容)。
然后将其分解为一个字符串并返回最后一个字符。
$path = $_SERVER['REQUEST_URI'];
$ID = $path[strlen($path)-1];
当然,您可以进行其他类型的字符串操作来获取字符串的最后一个字符。但这有效。