$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;
Вы можете использовать как это:
$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
функции вместо
Других решений пока нет …