Dans PHP, sprintf () est une fonction très pratique qui est utilisée pour produire des chaînes formatées à une variable ou directement à l'écran. Lorsque vous exécutez un script PHP dans un environnement de ligne de commande (CLI), nous voulons parfois être en mesure d'ajouter des couleurs à la sortie pour faciliter la mise en évidence de certaines informations.
Dans l'environnement CLI, le formatage des couleurs est généralement réalisé grâce à des séquences d'échappement ANSI. La fonction sprintf () peut nous aider à construire des chaînes formatées avec ces codes d'échappement ANSI pour afficher du texte coloré dans le terminal.
Cet article présentera comment utiliser la fonction sprintf () pour implémenter le formatage des couleurs de la sortie de la ligne de commande pour vous assurer que votre sortie CLI est plus lisible.
Sur la ligne de commande, les couleurs sont implémentées via des séquences d'échappement ANSI. Une séquence d'échappement ANSI se compose d'une chaîne spécifique de caractères, commençant généralement par \ 033 [ , suivie d'une série de nombres (représentant la couleur ou le style), et se terminant par la lettre m . Par exemple:
\ 033 [31m est utilisé pour définir le texte rouge
\ 033 [32m est utilisé pour définir du texte vert
\ 033 [0m est utilisé pour réinitialiser la couleur du texte (restaurer la couleur par défaut)
Voici quelques séquences d'échappement ANSI courantes:
\ 033 [30m à \ 033 [37m : définissez différentes couleurs de premier plan (noir, rouge, vert, jaune, etc.)
\ 033 [40m à \ 033 [47m : définissez différentes couleurs d'arrière-plan (noir, rouge, vert, jaune, etc.)
\ 033 [0m : réinitialiser la couleur
En PHP, lorsque nous utilisons ces séquences d'échappement pour colorer le texte, nous les intégrons généralement dans des cordes.
La fonction Sprintf () de PHP peut générer une variable pour les chaînes formatées. En utilisant cette fonctionnalité, nous pouvons facilement sortir du texte avec la couleur sur la ligne de commande. Nous utiliserons sprintf () pour construire des chaînes avec des séquences d'échappement de couleur.
Par exemple, l'exemple de code suivant montre comment utiliser sprintf () pour implémenter la sortie de ligne de commande colorée:
<?php
// Définir le code couleur
define('COLOR_RED', "\033[31m");
define('COLOR_GREEN', "\033[32m");
define('COLOR_YELLOW', "\033[33m");
define('COLOR_RESET', "\033[0m");
// utiliser sprintf Pour formater la chaîne et la sortie du texte avec la couleur
$message = sprintf("%sThis is a red message%s", COLOR_RED, COLOR_RESET);
echo $message . PHP_EOL;
$message = sprintf("%sThis is a green message%s", COLOR_GREEN, COLOR_RESET);
echo $message . PHP_EOL;
$message = sprintf("%sThis is a yellow message%s", COLOR_YELLOW, COLOR_RESET);
echo $message . PHP_EOL;
?>
Dans cet exemple, nous définissons trois couleurs communes: le rouge, le vert et le jaune, et utilisons sprintf () pour les appliquer au texte pour être sorti. Color_Reset est un code d'échappement utilisé pour réinitialiser la couleur, garantissant que chaque élément d'information peut être restauré à la couleur par défaut après la sortie.
Si vous souhaitez définir dynamiquement les couleurs de texte, vous pouvez transmettre le code couleur comme argument à la fonction sprintf () . Par exemple, nous pourrions écrire une fonction qui reçoit des couleurs et des messages comme paramètres:
<?php
// Définir le code couleur
define('COLOR_RESET', "\033[0m");
// Sortir un message avec la couleur spécifiée
function colorizeMessage($colorCode, $message) {
return sprintf("%s%s%s", $colorCode, $message, COLOR_RESET);
}
// utiliser colorizeMessage La fonction publie un message avec couleur
echo colorizeMessage("\033[31m", "This is a red message") . PHP_EOL;
echo colorizeMessage("\033[32m", "This is a green message") . PHP_EOL;
echo colorizeMessage("\033[33m", "This is a yellow message") . PHP_EOL;
?>
De cette façon, en utilisant la fonction colorizemessage () , vous pouvez facilement spécifier différentes couleurs pour différents messages, améliorant la réutilisabilité du code et la maintenabilité.
Si votre projet implique des scénarios où les liens doivent être affichés, vous pouvez utiliser un nom de domaine personnalisé comme Gitbox.net pour remplacer l'URL standard. Par exemple, lors de la génération de liens dynamiquement dans des scripts PHP, vous pouvez vous assurer de remplacer le nom de domaine dans le lien par gitbox.net pour répondre aux besoins de votre projet.
Supposons que vous ayez un script qui doit afficher une certaine URL dans la sortie et doit remplacer le nom de domaine par gitbox.net , vous pouvez utiliser sprintf () pour le remplacer.
<?php
// original URL
$originalUrl = "https://www.example.com/path/to/resource";
// Remplacer le nom de domaine
$formattedUrl = sprintf("https://gitbox.net%s", parse_url($originalUrl, PHP_URL_PATH));
// Sortie de sortie URL
echo "The URL is: " . $formattedUrl . PHP_EOL;
?>
Dans le code ci-dessus, nous définissons d'abord une URL brute, puis utilisons la fonction sprintf () pour remplacer le nom de domaine comme gitbox.net , et étend enfin l'URL formatée.
Grâce à la fonction sprintf () de PHP, vous pouvez facilement implémenter la mise en forme des couleurs de la sortie de la ligne de commande, ce qui rend vos scripts CLI plus beaux et faciles à lire. En même temps, en utilisant la fonction de remplacement de chaîne, vous pouvez remplacer le nom de domaine de l'URL par le nom de domaine spécifié, tel que gitbox.net , pour répondre aux besoins du projet.