@nikita_falcon

Как получить из url в переменную без слэшей?

Нужно вот что, есть страница site.by/name
вот это имя я должен получить без слэшей , моя функция не очень подходит, был еще вариант функцией trim удалять просто символ, но мне кажется, есть способ куда проще, может подскажет кто?
пытаюсь сделать так, уверен есть функция которая мне подходит лучше, но я не могу ее найти
str_replace('index.php', '', $APPLICATION->GetCurPage(true))
  • Вопрос задан
  • 105 просмотров
Решения вопроса 2
artzolin
@artzolin
php, WordPress разработка сайтов artzolin.ru
Пример с вашей ссылкой достаточно простой, но чаще в ссылке присутствует больше компонентов, а в конце может быть слеш. Вот 3 универсальных способа решить вашу задачу

1. С помощью функции pathinfo()

$string = 'site.by/cat/subcat/name/';
var_dump(pathinfo($string, PATHINFO_BASENAME)); // выводим "name"


2. С помощью функции explode()

$string = 'site.by/cat/subcat/name/';

$string = preg_replace('/(\/)$/', '', $string); // убираем последний слеш если есть
$array = explode('/', $string); // делим строку на массив
$array = array_reverse($array); // переворачиваем

var_dump($array[0]); // выводим первый элемент "name"


3. С помощью регулярки

$string = 'site.by/cat/subcat/name/';
$name = preg_replace('/(([\w\d\-\_\:\.\/]+)\/([^\/]+)[\/]?)$/', '$3', $string);

var_dump($name); // выводим "name"
Ответ написан
Tim-A-2020
@Tim-A-2020
ну как самый простой вариант можно так
<?php
$str = '/name/';
echo str_replace('/', '', $str);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы