[PHP] printf, имена вместо чисел (ЗАКРЫТО)
слабо представляю, зачем это нужно, кроме шаблонов. Поясни, отговорим от идеи)
Как бы гораздо удобнее, если в локализационных файлах фразы вида "Добро пожаловать, %username%, последний раз вы были в онлайне %lastonline%", чем "Добро пожаловать, %s$2, последний раз вы были в онлайне %s$1".
<?php
$s = 'some %a% and %b%.';
$r = array('a' => 'shit %b%', 'b' => 'test');
$z = preg_replace('!%(\w+)%!e', '$r["\1"]', $s);
var_dump($z);
?>
string(23) "some shit %b% and test."
Где же были мои глаза...
Оставить комментарий
kruzer25
А если мне наплевать на формат (пусть всё кастуется в строку стандартным способом и я хочу выводить текст так:
?
Писать свою функцию - довольно геморройно, тут простыми регулярными выражениями не обойтись, надо идти по строке и складывать результат в другую строку (чтобы не получилось гадости, если у нас $location содержит подстроку "%num%").
А есть ли что-нибудь готовое?