X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Не понятно регулярное выражение, Что хотел сказать автор?
Banderas
Banderas
Topic Starter сообщение 1.3.2011, 19:31; Ответить: Banderas
Сообщение #1


Не могу разобрать что автор хотел сделать используя вот этот код
[php]function regexpEscape($str)
{
return preg_quote($str, '/');
}

$mPageUrl = preg_replace (array('/^\//', '/\/?\?'.RegexpEscape($_SERVER['QUERY_STRING']).'$/'), array('',''), $mRequestUri ).'/';[/php]

Обьясните плис, кто понимает...((
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 6.3.2011, 22:27; Ответить: ZiTosS
Сообщение #2


Banderas, всё очень просто :)

Функция regexpEscape() - экранирует символы \\ + * ? [ ^ ] $ ( ) { } = ! < > | :, а так же экранирует символ / (Почему так, можно почитать в описании функции preg_quote) и возвращает экранированную строку.


Функция preg_repalce() возвращает переданную строку с заменами найденных вхождений (если они нашлись)


Теперь по описанию регулярки и кода


1) функцией preg_replace мы заменяем ( а в данном примере удаляем) в переменной $mRequestUri

  • '/^\//' - символ '/' только в начале строки => удаляем
  • '/\/?\?'.RegexpEscape($_SERVER['QUERY_STRING']).'$/' - строку оканчивающуюся на '/?[строка запроса]' или '?[строка запроса]' => удаляем (т.е. обрезаем концовку - передаваемые GET-параметры или так называемую строку запроса)


2) Добавляем в конце слеш


Моё видение кода

Тупо из URL запроса мы выцепляем URL страницы, к которой идет запрос, преобразовывая -> удаляется слеш из начала и строка запроса из конца.

Например:

Было

  • /path/catalog/subcatalog/?param1=value&param2=value...
  • /path/catalog/subcatalog/file.php?param1=value&param2=value...
  • httр://site.ru/path_to_file/?param1=value&param2=value...
  • httр://site.ru/path_to_file/file.php?param1=value&param2=value...


Стало после preg_replace

  • path/catalog/subcatalog
  • path/catalog/subcatalog/file.php
  • httр://site.ru/path_to_file
  • httр://site.ru/path_to_file/file.php


Записалось в $mPageUrl

  • path/catalog/subcatalog/
  • path/catalog/subcatalog/file.php/
  • httр://site.ru/path_to_file/
  • httр://site.ru/path_to_file/file.php/



Не понимаю, зачем нужен подобный код если есть функции basename (Возвращает имя файла из указанного пути), dirname (Возвращает имя каталога из указанного пути) или pathinfo (Возвращает информацию о пути к файлу)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Регулярное наполнение новостного сайта провинциального города
15 4enki 3718 10.3.2016, 22:39
автор: 4enki
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыРезультативные прогоны Хрумером по свежесобранным базам для поднятия позиций в Yandex и Google (Выдача, тИЦ, PR)… Регулярное обновление баз.
275 Kroner 147421 23.4.2015, 11:57
автор: Kroner
Открытая тема (нет новых ответов) регулярное выражение
13 Panich 8511 27.5.2011, 18:15
автор: -Apay-


 



RSS Текстовая версия Сейчас: 25.4.2024, 19:06
Дизайн