|
|
|
| Здравствуйте, не работает вот такая конструкци
$template=preg_replace("/(\[\|)(.+?)(\|\])/", $ar["\\2"], $template);
|
принцип я думаю понятен.
выдается ошибка Notice: Undefined index: \2 in... | |
|
|
|
|
|
|
|
для: neokortex
(02.10.2009 в 01:15)
| | Эта функция так не работает, вам нужно либо воспользоваться модификатором e, заставляющего выполнять PHP-код во втором параметре, либо функцией preg_replace_callback(), которая использует для замены функцию обратного вызова. | |
|
|
|
|
|
|
|
для: cheops
(02.10.2009 в 01:32)
| | спасибо. сейчас попробовал: что-то не получается. а можно примеры? | |
|
|
|
|
|
|
|
для: neokortex
(02.10.2009 в 01:55)
| | Можно поступить как-то так
<?php
$pattern = "/(\[\|)(.+?)(\|\])/";
$template=preg_replace_callback($pattern, "replace", $template);
function replace($match)
{
global $ar;
return $ar[$match[2]];
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(02.10.2009 в 02:04)
| | спасибо. покумекал. там проблемы с синтаксисом были. решил при помощи модификатора.
кому интересно будет решается так:
$template=preg_replace("/(\[\|)(.+?)(\|\])/e", "\$ar['\\2']", $template);
|
| |
|
|
|