LINUX.ORG.RU

php preg_replace


0

0

Вот такой пример имеется:

function doit($s) {
return '__'.$s.'__'.strlen($s);
}

$string = '<p>
tester<br/>
tester2<br/>
[[[ASSA]]]<br/>
[[[s]]]<br/>
tester3<br/>
</p>';


$a = preg_replace('/\[\[\[(.*)\]\]\]/',doit('\1'),$string);
print $a;

На выходе дает:

tester
tester2
__ASSA__2
__s__2
tester3

Как такое получается? и как в doit получить строку, которая была отправлена в качестве аргумента?

твой doit всегда будет возвращать одно и тоже:
__\1__2
Потом это чудо передается в preg_replace на дальнейшую обработку.
Отсюда и результат.

Chumka ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.