Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.137.221.163] |
|
Сообщ.
#1
,
|
|
|
Добрый день всем.
Помогите решить следующую задачу. <?php $mask = 'mask/(:num:1)/(:num:2)/(:num:3)'; // первая маска для поиска текущей строки $regexp = '#^mask/(\d+)/(\d+)/(\d+)$#'; // Преобразовываю в регулярку через preg_replace $result = 'result/(:num:3)/(:num:2)/(:num:1)'; // вторая маска для получения результирующей строки $text = 'mask/33/22/11'; // строка в которой ищем совпадения с помощью первой маски if( preg_match( $regexp, $text ) ){ // класс, находит // как быть дальше? // чтобы получить результат в виде "result/11/22/33" } |
Сообщ.
#2
,
|
|
|
Описание
mixed preg_match ( string $pattern, string $subject [, array $&matches [, int $flags [, int $offset]]] ) Ищет в заданном тексте subject совпадения с шаблоном pattern В случае, если дополнительный параметр matches указан, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] - часть строки, соответствующую первой подмаске, и так далее. |
Сообщ.
#3
,
|
|
|
preg_replace( $regexp, 'result/$3/$2/$1', $text );
Или я не понял, что надо... Добавлено Цитата sweetemmure @ Вот это тебе надо преобразовать в 'result/$3/$2/$1' $result = 'result/(:num:3)/(:num:2)/(:num:1)'; // вторая маска для получения результирующей строки |