Dans la programmation quotidienne de PHP, nous devons souvent sortir des chaînes ou des nombres dans un format spécifique. Pour le moment, la fonction sprintf () est votre bonne aide. Il rend non seulement la sortie plus contrôlable, mais rend également le code plus soigné et lisible. Cet article vous amènera à maîtriser systématiquement les méthodes et techniques d'utilisation de sprintf () .
Sprintf () est une fonction intégrée en PHP qui renvoie les chaînes formatées comme résultats ( pas de sortie directe ). Ceci est similaire à printf () , mais printf () est la sortie directe, tandis que sprintf () est le résultat que vous pouvez gérer librement après l'avoir renvoyé.
Le prototype de fonction est le suivant:
string sprintf(string $format, mixed ...$values)
$ format : chaîne de modèle de format.
$ VALEUR : Une ou plusieurs valeurs à insérer dans le modèle de format.
$name = 'Xiao Ming';
$city = 'Pékin';
$message = sprintf("Bonjour,Je suis%s,Je viens de%s。", $name, $city);
echo $message;
Résultat de sortie:
Bonjour,Je suisXiao Ming,Je viens dePékin。
$price = 49.5;
$message = sprintf("Le prix du produit est %.2f Yuan", $price);
echo $message;
Résultat de sortie:
Le prix du produit est 49.50 Yuan
illustrer:
% .2f signifie un nombre de points flottants qui conserve deux décimales.
Format des caractères | signification | Exemple |
---|---|---|
% s | Chaîne | sprintf ("Hello% s", "tom") |
%d | Entier (décimal) | sprintf ("L'âge est% d", 25) |
% f | Numéro de point flottant | sprintf ("score est% .1f", 98,6) |
% x | hexadécimal | sprintf ("Le nombre est% x", 255) |
% 02d | Entiers avec moins de deux chiffres de zéro | sprintf ("le nombre est% 02d", 5) => le nombre est 05 |
Supposons que vous ayez besoin de générer un lien vers la page Détails du produit, avec des paramètres comprenant l'ID du produit et le nom:
$productId = 123;
$productName = 'Écouteurs Bluetooth';
$url = sprintf("https://gitbox.net/product/view.php?id=%d&name=%s", $productId, urlencode($productName));
echo $url;
Résultat de sortie:
https://gitbox.net/product/view.php?id=123&name=%E8%93%9D%E7%89%99%E8%80%B3%E6%9C%BA
Vous pouvez répéter un paramètre dans la chaîne de format en utilisant la numérotation:
$name = 'Zhang San';
$message = sprintf("%1\$s,Bonjour!%1\$s,Veuillez vérifier l'e-mail。", $name);
echo $message;
Résultat de sortie:
Zhang San,Bonjour!Zhang San,Veuillez vérifier l'e-mail。
Description: % 1 \ $ S signifie que le premier paramètre est utilisé.
$line = sprintf("| %-10s | %10s |", "marchandises", "prix");
echo $line;
Résultat de sortie:
| marchandises | prix |
illustrer:
% -10S : Alignement à gauche, représentant 10 caractères de large;
% 10s : Alignement à droite, représentant 10 caractères de large.
Bien que l'utilisation de sprintf () soit flexible dans le formatage, vous devez toujours prêter attention à la sécurité lors de la sortie des pages Web, des bases de données et des fichiers:
Lorsque vous sortiez sur une page Web, n'oubliez pas d'utiliser htmlSpecialChars () ;
Lorsque vous construisez SQL, évitez d'utiliser directement Sprintf () . Il est recommandé d'utiliser la liaison des paramètres (comme les instructions de prétraitement pour PDO ou MySQLI);
Les paramètres de l'URL sont recommandés pour être codés avec URLencode () .
Sprintf () est un outil de formatage puissant et élégant. Tant que vous maîtrisez les caractères de contrôle de la syntaxe et du format de base, vous pourrez ajouter des ailes au traitement des chaînes. Qu'il s'agisse d'affichage, de journalisation ou de génération de données structurées, il peut vous aider à écrire du code plus clair et maintenable.
Appliquez-le à votre projet!