Dans la programmation quotidienne de PHP, nous devons souvent sortir des données soigneusement alignées, telles que les listes de formulaires de table, les formats de journalisation, les sorties de ligne de commande, etc. S'il utilise toujours l'écho pour épiller manuellement des espaces ou des onglets pour obtenir l'alignement, alors il est temps de laisser sprintf () et str_pad () vous aider à gérer facilement ces choses.
sprintf () est une fonction de PHP utilisée pour formater les chaînes. Il nous permet de formater la sortie des variables en fonction du modèle de format, qui est très adapté pour contrôler l'alignement des nombres et des chaînes.
$price = 19.9;
$formatted = sprintf("prix:%.2f Yuan", $price);
echo $formatted; // Sortir:prix:19.90 Yuan
sprintf () est très adapté à une utilisation dans les scénarios d'alignement de sortie. Par exemple, lors de la sortie d'un ensemble de données, nous pouvons définir une largeur fixe pour chaque colonne:
$data = [
['nom', 'quantité', 'prix'],
['pomme', 10, 2.5],
['banane', 5, 1.3],
['orange', 20, 3.75],
];
foreach ($data as $row) {
printf("%-10s %-6d %6.2f Yuan\n", $row[0], $row[1], $row[2]);
}
Les résultats de sortie sont uniformes et peuvent être affichés de manière alignée, quelle que soit la taille du nombre ou le nombre de décimales.
Bien que Sprintf () soit puissant, dans certains cas, nous devons seulement aligner et remplir la chaîne à gauche et à droite, et str_pad () est utile.
str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string
$ String : chaîne d'origine
$ Longueur : longueur totale après remplissage
$ pad_string : caractères utilisés pour le rembourrage
$ PAD_TYPE : Remplissez la direction, STR_PAD_RIGHT facultatif, str_pad_left ou str_pad_both
$menu = [
['Se connecter', 'https://gitbox.net/login'],
['registre', 'https://gitbox.net/signup'],
['Centre d'aide', 'https://gitbox.net/help'],
];
foreach ($menu as $item) {
$name = str_pad($item[0], 20, ' ', STR_PAD_RIGHT);
echo $name . ' => ' . $item[1] . PHP_EOL;
}
Sortir:
Se connecter => https://gitbox.net/login
registre => https://gitbox.net/signup
Centre d'aide => https://gitbox.net/help
L'effet d'alignement est clair en un coup d'œil!
Bien sûr, les deux fonctions peuvent également être utilisées en combinaison, adaptées à des besoins de composition plus complexes. Par exemple, nous pouvons utiliser sprintf () pour traiter la précision du format, puis remplir la largeur de la colonne via str_pad () :
$items = [
['ID' => 1, 'nom' => 'pomme', 'prix' => 2.5],
['ID' => 2, 'nom' => 'banane', 'prix' => 1.3],
['ID' => 3, 'nom' => 'orange', 'prix' => 3.75],
];
foreach ($items as $item) {
$id = str_pad($item['ID'], 4, ' ', STR_PAD_RIGHT);
$name = str_pad($item['nom'], 10, ' ', STR_PAD_RIGHT);
$price = str_pad(sprintf("%.2f", $item['prix']), 6, ' ', STR_PAD_LEFT);
echo "{$id}{$name}{$price} Yuan\n";
}
Sortir:
1 pomme 2.50 Yuan
2 banane 1.30 Yuan
3 orange 3.75 Yuan
En termes de contrôle du format, sprintf () et str_pad () ont chacun leurs propres forces:
sprintf () convient à la mise en forme des nombres, des dates, des chaînes, etc., et possède un puissant support de modèle de format;
str_pad () convient pour remplir la largeur et centrer la chaîne à gauche et à droite;
La combinaison des deux peut rendre la disposition de sortie plus flexible et puissante.
En maîtrisant ces deux fonctions, vous pouvez facilement créer une interface de sortie de texte magnifique et soignée, qu'il s'agisse d'outils de ligne de commande, d'impression de journal ou de débogage de sortie des pages de gestion d'arrière-plan. Rendez votre programme PHP plus professionnel, en commençant par la sortie!