siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009
Oshparennij:
Как я понял, этого будет не совсем достаточно.

Достаточно для оптимального способа.

прог:
Invalid command '\xef\xbb\xbf#'

Это байты BOM. Перекодируйте файлы в utf-8 без BOM или в windows-1251.

igor3310:
Во первых LIKE неподходит для полнотекстового поиска , и больших БД

Полнотекстовой поиск в админке нафиг не нужен.

Ms-Dred:
Может все такие передать JSON объект на сервер, где спокойно его переработать можно будет без всяких регулярок?

Чтобы передать "JSON объект" нужно писать соответствующий конструктор. В данном случае у ТС'а один текстовой инпут.

Не надо дергать регулярку - там все нормально. Копайте свою строку.

тут можно проверять, если is_numeric - те не подставлять %%, а в иных случаях подставлять, я так подумал сделать...

Не правильно думайте, так как это может быть и строка, а может быть наоборот число которое нужно искать в подстроке.

У вас какая кодировка? у меня utf8

И на форуме утф. А ваше выражение возможно приходит в другой кодировке. Хотя это в порядке бреда, так как если я не ошибаюсь эти символы кодируются одинаково и в cp1251. Смотрите побайтого на строку.

И немного изварата

'/(^|[&]{2}|[|]{2})\s*(\(*)\s*:([\w_]+)\s*([<>=]{1,2})\s*(["\'].*?["\']|[^\s()]+)\s*(\)*)/'

чтобы разбить выражение на составляющие и написать свой конструктор


Array
(
[0] => Array
(
[0] => :name=первая
[1] => && (:id>40
[2] => && :sect=content)
)

[1] => Array
(
[0] =>
[1] => &&
[2] => &&
)

[2] => Array
(
[0] =>
[1] => (
[2] =>
)

[3] => Array
(
[0] => name
[1] => id
[2] => sect
)

[4] => Array
(
[0] => =
[1] => >
[2] => =
)

[5] => Array
(
[0] => первая
[1] => 40
[2] => content
)

[6] => Array
(
[0] =>
[1] =>
[2] => )
)

)
$param[] = "%".$val."%";

А если нужно точное совпадание? Я бы использовал id==40 для точного поиска без %%.

но почемуж в моем скрипте непашет как надо

Возможно символы <> кодируются по разному в разных кодировках (как вариант).

Хз. Попробуйте чтоли экранировать эти символы в регулярным выражении.

Всего: 6568