Замените заполнитель на php-переменную с тем же именем

-1
$name = "MasterOfDisaster";
$age  = "666";

$string = "My name is [name] and i'm [age] years old";

Теперь я хотел бы заменить все значения между двумя символами и изменить их на одну и ту же переменную php

[foo] > $foo
I want to get this without replacing with arrays:
$string = "My name is $name and i'm $age years old";

Могу ли я достичь этого с помощью ereg_replace? Я не хочу использовать str_replace() в сочетании с массивами, чтобы поймать все мои значения в тексте.

Мой preg_replace() пока:

$placeholder = preg_replace("/\[(.*?)]/", ${"$1"}, $string);
echo $placeholder;
Теги:
str-replace
ereg-replace

1 ответ

0

Вы можете использовать вот так:

$array = array('name' => "MasterOfDisaster", 'age' => "666");
$string = "My name is [name] and i'm [age] years old";
foreach ($array as $key => $value) {
    $string = preg_replace('/\['.$key.'\]/i', $value, $string);
}
echo $string;

Выход:

My name is MasterOfDisaster and i'm 666 years old 

ПРИМЕЧАНИЕ. Не используйте функции ereg_replace потому что они устарели. Yous preg_replace вместо этого.

  • 0
    Эй, спасибо за устаревшую информацию, но я хотел бы заменить ее, не используя массивы, если это возможно.
  • 0
    Вам нужно знать, что вы хотите заменить чем-либо.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню