Мне нужно удалить URL-адрес с помощью PHP, чтобы добавить класс к ссылке, если он соответствует.
URL-адрес будет выглядеть так:
http://domain.com/tag/tagname/
Как я могу удалить URL-адрес, поэтому мне остается только "tagname"
?
Таким образом, в основном он выдает финальные "/"
и начало "http://domain.com/tag/"
Для вашего URL-адреса
http://domain.com/tag/tagname/
Функция PHP для получения "tagname"
называется basename()
:
echo basename('http://domain.com/tag/tagname/'); # tagname
объедините некоторую подстроку и некоторый поиск положения после того, как вы берете последний символ из строки. используйте substr и перейдите в индекс последнего «/» в вашем URL-адресе, предполагая, что вы сначала удаляете конечный «/».
В качестве альтернативы ответам на основе substring
вы также можете использовать регулярное выражение, используя preg_split
для разделения строки:
<?php $ptn = "/\//"; $str = "http://domain.com/tag/tagname/"; $result = preg_split($ptn, $str); $tagname = $result[count($result)-2]; echo($tagname); ?>
(Причина для -2
заключается в том, что из-за окончания /
конечный элемент массива будет пустой записью.)
И в качестве альтернативы этому вы также можете использовать preg_match_all
:
<?php $ptn = "/[az]+/"; $str = "http://domain.com/tag/tagname/"; preg_match_all($ptn, $str, $matches); $tagname = $matches[count($matches)-1]; echo($tagname); ?>
Большое спасибо всем, этот код работает для меня:
$ptn = "/\//"; $str = "http://domain.com/tag/tagname/"; $result = preg_split($ptn, $str); $tagname = $result[count($result)-2]; echo($tagname);