Nirva
Dmitry Polyakov
preg_replace() - replacement parameter
Такая вот возникла проблема, есть функция в классе:
$this->temp это ассоциативный массив
в строке $this->page_temp содержаться подстроки(заменямые) вида {!подстрока!}
соотвественно, элементы массива $this->temp выглядят как $this->temp['подстрока'].
функция возвращает в строке $this->page_all отформатированную строку $this->page_temp, в которой любая из подстрок {!подстрока!} заменена на значение элемента $this->temp['подсторка']. Но в том-то и дело, что функция должна возвращать, но не возвращает.
Просиходит это исключительно в случах, когда элемент в replacement указан как ссылка на подшаблон (\w+).
Если же подставить вместо $1 или \\1 - $a (а $this->temp[title_news] существует) все в порядке - все подстроки указанного в шаблоне вида будут заменены на значение элемента $this->temp['title_news'].
А вот со ссылкой не работает, при чем если оставить только "$1" или "\\1" все будет в порядке - все подстроки {!подстрока!} будут заменены на "подстрока".
Я понимаю, можно реализовать это в несколько в функций, что сейчас и сделаю, но все же хотелось... может как-то все-таки можно или я глубоко заблуждаюсь?
хелп ми, плиз. или просто скажите, что действительно так нельзя.
Такая вот возникла проблема, есть функция в классе:
PHP:
$pattern = ("/{!(\w+)!}/");
// $a = "title_news";
// echo $this->temp["$a"];
$this->page_all = preg_replace($pattern,$this->temp["$1"],$this->page_temp);
echo $this->page_all;
в строке $this->page_temp содержаться подстроки(заменямые) вида {!подстрока!}
соотвественно, элементы массива $this->temp выглядят как $this->temp['подстрока'].
функция возвращает в строке $this->page_all отформатированную строку $this->page_temp, в которой любая из подстрок {!подстрока!} заменена на значение элемента $this->temp['подсторка']. Но в том-то и дело, что функция должна возвращать, но не возвращает.
Просиходит это исключительно в случах, когда элемент в replacement указан как ссылка на подшаблон (\w+).
Если же подставить вместо $1 или \\1 - $a (а $this->temp[title_news] существует) все в порядке - все подстроки указанного в шаблоне вида будут заменены на значение элемента $this->temp['title_news'].
А вот со ссылкой не работает, при чем если оставить только "$1" или "\\1" все будет в порядке - все подстроки {!подстрока!} будут заменены на "подстрока".
Я понимаю, можно реализовать это в несколько в функций, что сейчас и сделаю, но все же хотелось... может как-то все-таки можно или я глубоко заблуждаюсь?
хелп ми, плиз. или просто скажите, что действительно так нельзя.