Изолировать часть URL с помощью php, а затем распечатать его в элемент HTML - PullRequest
2 голосов
/ 28 июня 2011

Я создаю галерею в WordPress и пытаюсь получить определенную часть моего URL, чтобы отобразить идентификатор div.

Это мой URL:

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

Я хочу выделить идентификатор галереи, который всегда будет числом (в данном случае его 1). Тогда я хотел бы иметь возможность напечатать его где-нибудь, возможно, в виде функции.

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

Вам лучше использовать $_SERVER['REQUEST_URI']. Так как это последняя строка в вашем URL, вы можете использовать следующую функцию:

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

@ Решение Кристиана будет возвращать только числа от 0 до 9, но эта функция будет возвращать идентификатор любой заданной длины, если ваш идентификатор отделен знаком - и последним элементом.

Итак, когда вы звоните

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

это будет эхо, в вашем случае, 1.

1 голос
/ 28 июня 2011

Если идентификатор не всегда будет иметь одинаковое количество цифр (если у вас какой-либо идентификатор больше 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.
}
?>
0 голосов
/ 28 июня 2011

Используйте переменную $ _SERVER ['REQUEST_URI'], чтобы получить путь (обратите внимание, что это не то же самое, что переменная хоста, которая возвращает что-то вроде http://www.yoursite.com).

Затем разбейте это на строкуи вернуть последний символ.

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

Конечно, вы можете делать другие типы манипуляций со строками, чтобы получить последний символ строки. Но это работает.

...