|
3 / 2 / 1
Регистрация: 27.12.2010
Сообщений: 31
|
||||||
Обработка адресов. Убрать все после "?"23.09.2014, 17:34. Показов 3324. Ответов 9
Метки нет (Все метки)
Задача такая. Есть адрес вида: /news/novye-chekhly-dlya-iphone-4?clear_cache=Y
Нужно привести к: /news/index.php?CODE=$1 , где $1 - это все после слеша и до ?, в данном случае novye-chekhly-dlya-iphone-4. Я пишу
0
|
||||||
| 23.09.2014, 17:34 | |
|
Ответы с готовыми решениями:
9
Убрать все до и после
Как убрать конфликт адресов |
|
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
|
|
| 23.09.2014, 18:40 | |
|
http://php.net/manual/ru/function.strpos.php
http://php.net/manual/ru/function.substr.php регулярки здесь лишние
0
|
|
|
3 / 2 / 1
Регистрация: 27.12.2010
Сообщений: 31
|
|
| 23.09.2014, 18:43 [ТС] | |
|
Увы, без регулярок не обойтись. preg_replace автоматически вызывается в битриксе при обработке адресов. На данный момент это единственный способ "обрезать" лишние параметры в _REQUEST
0
|
|
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
||
| 23.09.2014, 19:52 | ||
|
0
|
||
|
3 / 2 / 1
Регистрация: 27.12.2010
Сообщений: 31
|
||||||||||||||||
| 23.09.2014, 20:41 [ТС] | ||||||||||||||||
|
"?clear_cache=Y" вот что я понимаю под доп. параметрами.
Вообщем я поковырялся, и переделал регулярку. Сейчас проблема такая:
если верить википедии, то нужно сделать так:
Добавлено через 38 минут Я кажется понимаю в чем трабла, но еще не знаю как решить Вот результат с плюсом и без плюса. Нужно как-то сделать, чтобы обрезались все "дополнительные параметры", а не последний. Не могу понять почему, если написать (\?(.*))+,то обрезается только последнее вхождение в строку,начинающееся с "?", а если написать (\?(.*))(\?(.*)), то оба. Видимо я очень плохо понимаю работу квантификатора "+". Тут проблема в том, что я не могу знать сколько будет вхождений (\?(.*))
0
|
||||||||||||||||
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|||||||
| 23.09.2014, 22:10 | |||||||
|
google.ru/search?q=амперсанд&oq=амперсанд&aqs=chrome... Ссылку в которой более одного вопросительного знака Вы не увидите, да и это неверно. И Ваше регулярное выражение для правильных ссылок с GET запросом вполне подходит. Если все-таки дело идет не о HTTP протоколе, то достаточного такого выражения:
1
|
|||||||
|
3 / 2 / 1
Регистрация: 27.12.2010
Сообщений: 31
|
||||||||||||||||
| 23.09.2014, 23:11 [ТС] | ||||||||||||||||
|
тогда задача усложняется, но в любом случае
http://take.ms/3ynDX Добавлено через 11 минут одна из причин почему я это делаю: Кликните здесь для просмотра всего текста
Одна интересная особенность, которую надо учитывать. Допустим вам надо сделать преобразование такого вида, чтобы при открытии страницы /news/445.php происходило преобразование в /news/detail.php?ID=445 Можно использовать такое правило Код
Оно даже будет работать, но ровно до тех пор пока в строке не появятся дополнительные параметры. Например пользователь перешел с внешнего ресурса и в URL была добавлена метка для Google Analitics, запрошенный URL получился примерно такой /news/445.php?utm_source=google. Вместо текста новости вы увидите сообщение "Элемент не найден", потому что в результате преобразования получился такой адрес /news/detail.php?ID=445?utm_source=google. Ниже приведен код, решающий эту проблему:
Этот комментарий был на странице в разделе "обработка адресов" в документации к битриксу. Я настраивал ЧПУ через обработку адресов и столкнулся с проблеммой что при сбросе кэша у меня в _REQUEST передается не правильный CODE, т.к. к нему прибавляется "?clear_cache=Y". Тогда я начал думать о том чтобы разделить нужную мне информацию и все что идет за ней. С задачей обработки адресов при сбросе кэша я справился, но что делать если добавится еще метка, как в случае описанном выше?
0
|
||||||||||||||||
|
3 / 2 / 1
Регистрация: 27.12.2010
Сообщений: 31
|
|
| 23.09.2014, 23:20 [ТС] | |
|
Как оно работает сейчас
0
|
|
|
Невнимательный
|
|||
| 24.09.2014, 05:07 | |||
|
Непонятно чем не устраивало предлогаемое
, то замените на "#^/news/([^\\?]+)(\\?(.*))?#"
, причём в обоих случаях как-бы до возможного ?-символа. //.... Если правильно смог рассмотреть картинку
1
|
|||
|
3 / 2 / 1
Регистрация: 27.12.2010
Сообщений: 31
|
|
| 24.09.2014, 09:20 [ТС] | |
|
Предлагаемый пример вообще мне не подходит
А "#^/news/([^\\?]+)(\\?(.*))?#" не работает, я уже писал об этом и скрин присылал Добавлено через 8 минут Лол без понятия что произошло, но вчера регулярка #^/news/([^\\?]+)(\\?(.*))?# не сработала. Только что снова ее вставил, даже автозаполнение в хроме подсказало что я уже писал это правило и оно сработало. Особая магия битрикса. Всем спасибо за помощь. Постараюсь не забыть и сделать итоговое сообщение с подведением результатов.
0
|
|
| 24.09.2014, 09:20 | |
|
Помогаю со студенческими работами здесь
10
Как убрать из строки все, что находится после тире Как корректно убрать расширения из адресов страниц Обработка несуществующих адресов сайта
MVC: организация и обработка адресов для новостей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|