preg_match_all

Мутник

Новичок
preg_match_all

есть такая задачка - пройтись по строке и заменить что-то на что-то.

в данный момент делаю так:
PHP:
preg_match_all("/~[!_a-zA-Z]*~/", $page, $matches);	

for ($i=0; $i<sizeof($matches); $i++){
 some actions;
}
а можно ли как то сделать так, чтобы все происходило на ходу??? т.е. получил совпадение и сразу же с ним что то сделал...

читал, что можно совпадение заключать в круглые скобки, а потом делать что то типа function(\\1);

но не работает...
 

Мутник

Новичок
не, ну это понятно....меня интересует то, как передать туда параметр совпадения???

в перле вроде можно $1, для пхп написано, что \\1 но у меня пишет, что
PHP:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ...
делаю так:

PHP:
preg_replace("/~([!_a-zA-Z])*~/", $page, strtolower(\\1));
перед единичкой - 2 обратные кавычки - не постятся
 

Мутник

Новичок
ну так а у меня так:

preg_replace("/~([!_a-zA-Z]*)~/", strtolower("\\1"), $page);

что тут не так???
 

Мутник

Новичок
спасибо...

не всегда, чтобы кому-то помочь, нужно быть продвинутым ;))
 

Мутник

Новичок
с прег_реплисом все отменно работает...

за совет спасибо, сейчас посмотрю...

проблема решена. Спасибо всем.
 
Сверху