Как найти в тексте и заменить значение по маске?
Есть вот такая строка: Здравствуйте [~iname~] мы знаем что ваша фамилия [~fname~], поэтому [~fname~] [~iname~] мы дарим вам подарок.
Есть такой массив: $arr['person']['iname']="Анатолий"; $arr['person']['fname']="Рожков";
Надо получить такую строку Здравствуйте Анатолий мы знаем что ваша фамилия Рожков, поэтому Рожков Анатолий мы дарим вам подарок.
Ответы (1 шт):
Автор решения: phpBear
→ Ссылка
<?php
$str = "Здравствуйте [~iname~] мы знаем что ваша фамилия [~fname~], поэтому [~fname~] [~iname~] мы дарим вам подарок.";
$arr = [
'person' => [
'iname' => 'Анатолий',
'fname' => 'Рожков'
]
];
foreach( array_keys( $arr['person'] ) as $key ) {
$str = preg_replace("/\[\~".$key."\~\]/", $arr['person'][ $key ], $str );
}
echo $str."\n";
Результат:
Здравствуйте Анатолий мы знаем что ваша фамилия Рожков, поэтому Рожков Анатолий мы дарим вам подарок.