Question

J'ai donc du code PHP qui ressemble à:

$message = 'Here is the result: %s';

Je viens d'utiliser% s comme exemple. C'est fondamentalement un espace réservé pour tout ce qui s'y passera. Ensuite, je passe la chaîne à une fonction et je souhaite que cette fonction remplace le% s par la valeur.

Que dois-je faire pour y parvenir? Dois-je faire des regex, et utiliser preg_replace (), ou quelque chose? ou existe-t-il un moyen plus simple de le faire?

Était-ce utile?

La solution

Vous pouvez réellement utiliser la fonction sprintf qui renverra une chaîne formatée et mettra vos variables à la place de les espaces réservés.
Il vous donne également de grands pouvoirs sur la manière dont vous voulez que votre chaîne soit formatée et affichée.

$output = sprintf("Here is the result: %s for this date %s", $result, $date);

Autres conseils

Si vous utilisez % s , je pense que c'est le même espace réservé que printf utilise pour une chaîne. Donc, vous pourriez faire:

$text = sprintf($message, "replacement text");

Pensez que cela devrait fonctionner au moins ...

$find = array(
     '#name#',
     '#date#'
);
$search = array(
     'someone\'s name',
     date("m-d-Y")
);
$text_result = str_replace($find, $search, $text);

J'utilise généralement ceci pour mon code, en récupérant le texte $ de certains fichiers texte / html font alors le $ text_result comme sortie

Vous pouvez utiliser sprintf , qui fonctionne de manière très similaire aux C Fonctions printf et sprintf .

essayez les variables dynamiques:

$placeholder = 's';
str_replace("%".$placeholder,$placeholder,$message);

alors% s sera remplacé par $ s, la variable

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top