web-dev-qa-db-fra.com

sprintf - répétition des arguments

Je veux formater une chaîne avec sprintf mais en répétant plusieurs fois un argument. voir..

$str = "Str 1: %s - Str 2: %s - Str 2 again: %s";

Compte tenu de cette chaîne à formater, je veux répéter le deuxième argument deux fois.

echo sprintf($str, "I'm string 1", "My name is string 2");

Et le résultat souhaité comme:

Str 1: I'm string 1 - Str 2: My name is string 2 - Str 2 again: My name is string 2

Il y a un moyen de faire ça ??

43
user898741

Tout est dans le documentation !

$str = 'Str 1: %1$s - Str 2: %2$s - Str 2 again: %2$s';
echo sprintf($str, "I'm string 1", "My name is string 2");

Remarque: Utilisez des guillemets simples pour la chaîne de format, sinon vous obtiendrez Remarque PHP: Variable non définie: s dans/chemin/vers/tofile: ligne

Vous pouvez également échapper au $ avec un \ si vous utilisez des guillemets doubles.

83
Savageman