| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > регулярка выдаёт ошибку |
| Автор: darkness 5.8.2006, 12:31 | ||
| Решил поработать тут с определением ссылок: вот что получилось:
А мне в ответ: Fatal error: Only variables can be passed by reference Где закралась трабла? |
| Автор: Wolf1994 5.8.2006, 12:56 |
| По данной ошибке: на месте PREG_PATTERN_ORDER должна быть переменная для сброса в неё массива совпадений, типа: $out. |
| Автор: darkness 5.8.2006, 13:18 |
| Wolf1994, ок - СПАСИБО, а что можешь сказать по поводу регулярки... теперь он не может распознать какую-то из скобок Warning: preg_match_all(): Unknown modifier '(' З.Ы.: кстати регулярка схожа с http://forum.vingrad.ru/index.php?showtopic=103490&hl= |
| Автор: Wolf1994 5.8.2006, 18:24 | ||
Наиболее простое решение для данного случая:
|
| Автор: darkness 6.8.2006, 11:13 |
| Wolf1994, понятно. В твоём выражении я не знаком лишь с модификатором U и ещё "!" - как я понял, означает начало/конец регулярки? |
| Автор: Wolf1994 6.8.2006, 12:32 | ||||
"U" - инвертатор "жадности":
То есть, если есть выражение: begin end end и захватчик: begin - end то по умолчанию произойдёт полный захват: begin end end а с инвертатором - до первого совпадения: begin end http://ru.php.net/manual/ru/reference.pcre.pattern.modifiers.php http://ru.php.net/manual/ru/reference.pcre.pattern.syntax.php
Да. |
| Автор: DENNN 6.8.2006, 13:49 | ||
Мне кажется, ему не нравится, что срока собирается при вызове йункции. Попробуй так
|
| Автор: Mal Hack 6.8.2006, 14:29 |
| А зачем тут _all? если есть однот совпрадение то уже замечательно. Так что preg_match И потом, зачем тут вообще регулярка, когда через strstr или strpos намного быстрее будет. |
| Автор: darkness 6.8.2006, 18:35 | ||||
Думаю не в этом была проблема, поставил обратные слэши перед >\\ и им подобным - ругаться перестал..... Mal Hack, сравнение строк я могу |