Перейти к содержимому

Фотография
- - - - -

Помогите разбить URL


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 2

#1 asherik

asherik

    Прохожий

    Топикстартер
  • Новичок
  • 0
    2 сообщ.

Отправлено 16 Август 2016 в 10:57

Здравствуйте, необходимо разбить url вида http://site.ru/categ...egoriya/product

 

Нужно получить переменные 

 

$categoriya = 'categoriya';

 

$n = '3';  - это сколько раз повторилась /categoriya/

 

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

 

Вот я и хочу получить переменные, и если значение категория дублируется, то урезаем лишнее и редиректим страницу на нормальный юрл вида 

 

http://site.ru/categoriya/product

 

Очень надеюсь на вас, помогите пожалуйста с разбивкой юрл на переменные, остальное сам умею


  • 0

Спонсор

#2 miketomlin

miketomlin

    Прохожий

  • Участник
  • 14
    67 сообщ.

Отправлено 16 Август 2016 в 12:16

Как вариант, explode+array_unique. Или preg_* функции.

 

А как получилось, что возникли такие дубли? Надо бы сделать так, чтобы они вообще больше не появлялись.


  • 0

#3 asherik

asherik

    Прохожий

    Топикстартер
  • Новичок
  • 0
    2 сообщ.

Отправлено 16 Август 2016 в 12:39

Нашел один вариант решения

<?php

$url = 'http://test.ru/sportivnaya_odejda/sportivnaya_odejda/razmi_lij_kostumi/razminochniy-lyzhniy-kostum-002-krasniy-13';

$url = preg_replace('/(\b[\pL0-9]++\b)(?=.*?\1)/siu', '', $url);
echo $url;

?>
а так работает (где в качестве разделителя слов категории не используется нижний пробел "_")
<?php

$url = 'http://test.ru/sportivnayaodejda/sportivnayaodejda/razmi_lij_kostumi/razminochniy-lyzhniy-kostum-002-krasniy-13';

$url = preg_replace('/(\b[\pL0-9]++\b)(?=.*?\1)/siu', '', $url);
echo $url;
?>
 
Как бы сделать чтобы и нижний пробел учитывался?

Как вариант, explode+array_unique. Или preg_* функции.

 

А как получилось, что возникли такие дубли? Надо бы сделать так, чтобы они вообще больше не появлялись.

дубли в опенкарт не знаю уже как и бороться, но дубли будут если вручную вбить категории дополнительно


Сообщение отредактировал BaNru: 16 Август 2016 в 15:42
Для вставки кода есть кнопочка CODE, не стесняемся её использовать

  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей