Position actuelle: Accueil> Derniers articles> Comment formater les chaînes et les nombres à l'aide de sprintf

Comment formater les chaînes et les nombres à l'aide de sprintf

gitbox 2025-04-28

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 () .

1. Qu'est-ce que 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.

2. Utilisation de base de sprintf ()

Exemple 1: chaîne 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。

Exemple 2: Numéros de format

 $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.

3. Caractères de contrôle du format commun

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

4. Exemple pratique: générer des liens avec les paramètres

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

5. Techniques d'utilisation avancées de sprintf ()

1. Réutiliser les paramètres plusieurs fois

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é.

2. Alignez la sortie (adaptée à la génération de tables)

 $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.

6. Sprintf et sécurité

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 () .

7. Résumé

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!