Intereting Posts
Программно создавая новый порядок в Woocommerce как конкатенировать два значения элемента массива в php специальным символом? Объект класса mysqli_result не может быть преобразован в строку в Как я могу использовать постоянные соединения HTTP 1.1 и конвейерную обработку из PHP? PHP SQL, запрос возвращает только одну строку данных Как решить ldap_start_tls () «Не удалось запустить TLS: Ошибка подключения» в PHP? Проверка длины строки с помощью strlen Android с php: сохранение строки utf-8 в MySQL Эффективное отображение strtotime () в MySQL / PHP-запросе Неперехваченное исключение: Ошибка: разрешение отклонено для <https://www.facebook.com>, чтобы получить свойство Proxy.InstallTrigger Получить токен безопасности для незарегистрированного пользователя с помощью Symfony Функция обратного вызова php в классе Со стороны сервера поддержки подготовлены инструкции с PDO? dirname (__ FILE__) на localhost Получить срок действия сеанса в Zend Framework

PHP-strip URL для получения имени тега

Мне нужно удалить URL-адрес с помощью PHP, чтобы добавить класс к ссылке, если он соответствует.

URL-адрес будет выглядеть так:

http://domain.com/tag/tagname/ 

Как я могу удалить URL-адрес, поэтому мне остается только "tagname" ?

Таким образом, в основном он выдает финальные "/" и начало "http://domain.com/tag/"

Solutions Collecting From Web of "PHP-strip URL для получения имени тега"

Для вашего 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);