на этот код preg_match("#[\s]*[[:punct:]]#i", $_GET['name']) пишет Compilation failed: POSIX named classes are supported only within a class at offset 5
Подскажите аналог классу знаков пунктуации [[:punct:]]
Спасибо!
Спустя 43 минуты, 58 секунд (29.08.2010 - 20:35) Romms написал(а):
[\.,;:-] - оно?
Спустя 19 минут, 24 секунды (29.08.2010 - 20:55) hi3 написал(а):
да, но желательно все существующие)
Спустя 6 минут, 40 секунд (29.08.2010 - 21:01) Romms написал(а):
[[:punct:]] - все знаки препинания
вы знаете другие кроме .,;:-?
ЗЫ. Я не понимаю почему [\s]* разве не правильней (\s)*?
вы знаете другие кроме .,;:-?
ЗЫ. Я не понимаю почему [\s]* разве не правильней (\s)*?
Спустя 3 минуты, 42 секунды (29.08.2010 - 21:05) hi3 написал(а):
Я не понимаю почему [\s]* разве не правильней (\s)*?
Если использовать скобки - то получиться карман., а он иногда при большом количестве карманов затрудняет поиск нужного)
да, еще один: _ Хотя это спорно))
Если использовать скобки - то получиться карман., а он иногда при большом количестве карманов затрудняет поиск нужного)
да, еще один: _ Хотя это спорно))
Спустя 2 часа, 28 минут, 41 секунда (29.08.2010 - 23:34) hi3 написал(а):
подскажите, а как мне вырезать обратный слешь? То что ниже не работает
В общем задача следующая. Делаю поиск, и если в тексте встречается обратный слеш, то запрос валится. Не помогает и $search = mysql_escape_string($search); А в тексте, я думаю, могут встречаться и обратные слеши(текст ищется в базе mysql), но не как не insert...
а еще с этими друзьями надо разобраться и какие еще проверки делать?
preg_replace('#(\\)*#i', '', $search);
В общем задача следующая. Делаю поиск, и если в тексте встречается обратный слеш, то запрос валится. Не помогает и $search = mysql_escape_string($search); А в тексте, я думаю, могут встречаться и обратные слеши(текст ищется в базе mysql), но не как не insert...
а еще с этими друзьями надо разобраться и какие еще проверки делать?
$search = preg_replace('#(UPDATE)*#i', '', $search);
$search = preg_replace('#(DELETE)*#i', '', $search);
Спустя 14 часов, 30 минут, 31 секунда (30.08.2010 - 14:04) Nord написал(а):
Цитата |
Не помогает и $search = mysql_escape_string($search); |
У вас какая-то специфичная задача? Обычно для экранирования значения хватает mysql_real_escape_string()
preg_replace('#(\\)*#i', '', $search);
$search = preg_replace('#(UPDATE)*#i', '', $search);
$search = preg_replace('#(DELETE)*#i', '', $search);
Откройте для себя функцию str_replace(), она работает быстрее
Спустя 2 часа, 21 минута, 17 секунд (30.08.2010 - 16:26) инь написал(а):
ды поиск по сайту обычный. Что интересно, на сервере включены магические кавычки, черт бы их побрал, пропускают они обратный слешь.
В запросе я использую RLIKE="а здесь знак + и \ вызывают ошибку"
И как я понял mysql_real_escape_string тоже не пашет. Хотя не ручаюсь, надо перепроверить. Сначала stripslashes, затем mysql_real_escape_string
В запросе я использую RLIKE="а здесь знак + и \ вызывают ошибку"
И как я понял mysql_real_escape_string тоже не пашет. Хотя не ручаюсь, надо перепроверить. Сначала stripslashes, затем mysql_real_escape_string
Спустя 1 час, 55 минут (30.08.2010 - 18:21) Nord написал(а):
Для обычного LIKE вот хорошая ссылка:
Особенности работы с оператором LIKE
А RLIKE, как полагаю, требует regexp-выражение? Можно попробывать экраннировать спец. символы с помощью preg_quote()
Особенности работы с оператором LIKE
А RLIKE, как полагаю, требует regexp-выражение? Можно попробывать экраннировать спец. символы с помощью preg_quote()