siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009

Конкретно на коде выше я смотрел и подобных проблем небыло. Да и по идее регулярка должна отработать как нужно. Проверяйте свой код.


$str = ':name=первая && (:id>40 && :sect=content)';
$param = array();

preg_match_all('/:([\w_]+)\s*([<>=]{1,2})\s*(["\'].*?["\']|[^\s()]+)/', $str, $out);
for($i=0; $i<count($out[0]); $i++){
$key = $out[1][$i];
$sign = $out[2][$i];
$val = $out[3][$i];

$str = str_replace($out[0][$i], $key.(($sign == '=') ? ' LIKE' : $sign).' ?', $str);
$param[] = $val;
}

echo $str;
print_r($param);

Грубый такой вариант. Если вам нужно разобрать полностью выражение пишите свой парсер с блэкджеком и девушками.

^test/.+?_(\d+)/.+?_(\d+)/$

и все там с тире должно работать. Кеш браузера сбросьте.

Вам нужно проверить уникальность строк? Group by не подходит?

DeL Esprit:
от этого никуда не деться?

Зависит от браузера, но подумайте, что будет если вы вставите ссылку с кириллицей на сайте который работает в cp1251?.. Так что для вас же лучше, чтобы не канонические символы были закодированы.

Зацикливания редиректа. Проверьте чтобы в htaccess небыло обратного редиректа что вызвало бы бесконечный цикл.

Злой Дух:
домен зареган на меня, узнавал через регистратора да и на себя он его переделать не сможет я его на свои данные регистрировал с подтверждением у меня даже где то типо "грамоты" лежит что домен мне пренадлежит.

А вы об этом напарнику говорили? Возможно он одумается и раскается. Хотя может быть и наоборот - зарегает новый домен, а с нынешнего поставит редирект.

SoVeR:
Возможно, но я не понял как это можно сделать.

Так и пишите чего не поняли. Отыщите свою тему и пишите там.

Вам же вроде один раз ответили, не?..

spiderbuber, дело не в реврайтах а в вашей кмс. Спрашивайте у конторы откуда брали скрипт, либо разберите систему чпу. Скорее всего там где-то лишняя папка вытаскивается.

Всего: 6568