Замена переменных в строке
Я работаю над многоязычным веб-сайтом на PHP, и в моих языковых файлах у меня часто есть строки, которые содержат несколько переменных, которые будут позже заполнены для завершения предложений.
В настоящее время я размещаю{VAR_NAME}
в строке и вручную заменяя каждый вхождение соответствующим значением при использовании.
Итак, в основном:
{X} created a thread on {Y}
становится:
Dany created a thread on Stack Overflow
Я уже думал оsprintf
но я нахожу это неудобным, потому что это зависит от порядка переменных, которые могут меняться от языка к другому.
И я уже проверилКак заменить переменную в строке значением в php? и сейчас я в основном использую этот метод.
Но мне интересно знать, есть ли в PHP удобный (или, возможно, нет) удобный способ сделать это, учитывая, что у меня уже есть переменные, названные точно так же, как X и Y в предыдущем примере, больше похоже на $ для переменной переменной ,
Так что вместо того, чтобы делать str_replace для строки, я мог бы вызвать такую функцию:
$X = 'Dany';
$Y = 'Stack Overflow';
$lang['example'] = '{X} created a thread on {Y}';
echo parse($lang['example']);
также распечатал бы:
Dany created a thread on Stack Overflow
Спасибо!
редактировать
Строки служат шаблонами и могут использоваться несколько раз с разными входами.
Так в основном делают"{$X} ... {$Y}"
не будет делать трюк, потому что я потеряю шаблон, и строка будет инициализирована с начальными значениями$X
а также$Y
которые еще не определены.