| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > preg_replace и точка! |
| Автор: Corol 12.3.2010, 20:37 | ||
| нужно заменить http:// на http://www. пишу:
меняет.... но без точки!?? что не так? |
| Автор: bars80080 12.3.2010, 20:41 | ||
а за экранировать её?
|
| Автор: Corol 12.3.2010, 20:47 | ||
вообщем крутое решение:
пс: может кто-то прояснит чего так? Добавлено @ 20:48 не фурычит |
| Автор: bars80080 12.3.2010, 20:53 | ||
что-то у тебя неправильно настроено. у меня работает даже
проверь, что там у тебя в реальности находится в переменных до и после этой конструкции |
| Автор: skyboy 12.3.2010, 21:26 |
| встречный вопрос: зачем в этом случае preg_replace, если str_replace хватает "за глаза"? |
| Автор: SickFxck 4.5.2010, 15:35 | ||||
Чисто для справки: то, что выдаёт preg_quote() на самом деле сразу подставлять в строковой литерал не надо, т.к. есть ещё один уровень экранирования (PHP). То есть правильнее
Хотя в данном случае вам «повезло» и можно писать и так:
|
| Автор: brother79 6.5.2010, 05:33 | ||
Поясни пожалуйста по двойному слешу, я честно сказать не понял к чему это. Просто я как-то столкнулся с проблемой экранировать \n что в итоге решилось странным числом слешейперед n, оно работало, но я так и не понял почему так. Всё остальное экранировалось всегда без проблем. |
| Автор: SickFxck 6.5.2010, 07:41 | ||
Если ты экранируешь что-то с помощью бекслеша, то разве не логично экранировать и сам бекслеш?
Особенно это будет чувствоваться при двойных кавычках, т.к. там подобных последовательностей больше. |
| Автор: brother79 6.5.2010, 08:27 | ||
Не, ну последние примеры - тут всё понятно. Про двойные - там тоже всё ясно, сначала слеш проэкранировать, потом символ, а в одинарных, '/http\\:\\/\\//' - тут-то какой смысл? ведь '\:' == '\\:' |
| Автор: SickFxck 7.5.2010, 05:19 |
| brother79, смысл в чётком понимании на каком уровне происходит экранирование. В данном случае это, конечно, необязательно и, быть может, даже ухудшает читаемость. |
| Автор: brother79 7.5.2010, 05:45 | ||
У меня была задача отследить \n в строке. Как я только не пытался, пока не подсказали в одинарных кавычках использовать '\\n' Вот тут я так и не понял на каком уровне происходит экранирование, т.к. в одинарных кавычках, \n никак не преобразовывается, при этом в регулярке оно не пашет. |
| Автор: SickFxck 7.5.2010, 08:09 | ||
brother79,
? |