← PHP

[PHP] vsprintf() problema

Lida 1386 vezes

Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Boas..

Já alguém usou o vsprintf ? Eu sempre usei o sprintf, mas como preciso usar arrays tenho de usar o vsprintf..

O problema é que ele no final coloca o total de caracteres que a string contem.

Função que criei para testar
Código: [Seleccione]
function teste()
{
$lang = func_get_arg(0);
$args = func_get_args();
unset($args[0]);

return vsprintf($lang, $args);
}


Exemplo:
Código: [Seleccione]
echo $this->teste('Teste %s, %s -> ', 'var1', 'var2');
Retorno:
Código: [Seleccione]
Teste var1, var2 -> 20
Como podem ver no final ele coloca 20 que é o total da string, como se eu estivesse a usar strlen(), mas não deveria...

Alguém já teve o mesmo problema ?


Eu sei que como está agora posso usar o sprintf, mas apartir do argumento 1 vou ter de obter a tradução, e depois usar essa linha traduzida.. dai ter de usar esta função menos boa =\