Suppression des espaces de début et de fin (et autres caractères) d'une chaîne en PHP. Comment supprimer les espaces des chaînes en PHP ? Php supprime les espaces supplémentaires en ligne

Bonsoir, récemment nous avons abordé un peu le sujet des mots de passe et de leur stockage sécurisé, à savoir, nous avons étudié la fonction de hachage. Aujourd'hui, nous continuerons un peu le sujet des mots de passe et de leur stockage, et nous étudierons les fonctions avec lesquelles vous pouvez supprimer les espaces au début et à la fin d'une chaîne. Et voici les mots de passe et supprimer des espaces d'une chaîne, à vous de me dire? Premièrement, cette fonction, bien sûr, ne concerne pas spécifiquement les mots de passe, mais ne fonctionne qu'avec des chaînes, et j'ai parlé des mots de passe uniquement en tant qu'application. Vous pouvez donc l’utiliser où et quand vous le souhaitez, en fonction de votre situation.

A quoi ça sert ? couper les espaces au début et à la fin de la ligne? Si vous spécifiez un mot de passe sur le site lors de votre inscription et que vous appuyez accidentellement sur la barre d'espace sans le remarquer, votre mot de passe sera alors composé, par exemple, non pas de quatre caractères, mais de cinq, y compris votre espace.

Et vous ne comprendrez pas pourquoi le mot de passe ne convient pas, car le hachage de cette chaîne sera différent. Par conséquent, je recommande toujours de couper les espaces sur une ligne pour éviter de telles nuances. Nous allons maintenant considérer un exemple pratique. " 1234 " ;
$string_pass =;
$mot de passe = md5(trim($string_pass ));
$mot de passe2 = md5($string_pass ) écho
$mot de passe2 = md5($string_pass ) "
"
;
$mot de passe2 = md5($string_pass ) $mot de passe ;
?>

$mot de passe2; Nous créons une variable qui sera notre mot de passe, et indiquons spécifiquement un espace au début et à la fin de la ligne. Ensuite, nous créons une variable dans laquelle le mot de passe haché sera déjà stocké et passons la ligne fonction de trim, qui supprimera d'abord tous les espaces inutiles, et ensuite seulement nous obtiendrons le mot de passe haché. Et dans la deuxième variable, nous n'utilisons pas la fonction pour supprimer les espaces et hacher immédiatement la chaîne. Nous affichons ensuite les deux résultats sur l’écran du navigateur et constatons qu’ils sont complètement différents, même si nous avons utilisé la même chaîne à chaque fois. Cependant, en raison des espaces, le résultat est complètement différent, vous devez donc être extrêmement prudent à ce sujet. Et une dernière chose que je devrais vous dire. Il existe deux autres fonctions qui suppriment les espaces au début ou à la fin d'une ligne, et elles sont appelées ltrim respectivement. Par conséquent, si vous devez supprimer des espaces sur l’un des côtés, utilisez-les. Et avec cela, je conclus cet article et vous souhaite du succès dans tout votre travail.

Lorsque vous travaillez avec du texte, vous devez souvent le formater. Ceci est nécessaire pour un affichage correct et une lisibilité aisée. Ceci est nécessaire si l'utilisateur saisit certaines informations et fait des erreurs : au lieu d'un espace, il indique deux espaces, et met une tabulation au début. Il existe plusieurs façons de supprimer des espaces en PHP.

Garniture()

La fonction Trim recherche des caractères supplémentaires au début ou à la fin d'une chaîne. Ce:

  • espace régulier;
  • tabulation;
  • caractère de saut de ligne.

Il s'écrit sous cette forme :

Garniture de chaîne (string $str [, string $character_mask = "\t\n\r\0\x0B" ])

$str est la chaîne en cours de traitement et $character_mask correspond aux caractères supplémentaires. $character_mask est un attribut facultatif.

Preg_replace

Une fonction pour rechercher et remplacer des caractères à l'aide d'une expression régulière.

Preg_replace mixte (mixte $pattern , mixte $replacement , mixte $subject [, int $limit = -1 [, int &$count ]])

  1. $pattern - le modèle que vous recherchez.
  2. $replacement - caractères à remplacer.
  3. $subject - l'objet en cours de traitement.
  4. $limit - nombre de remplacements effectués.

$pattern et $replacement peuvent être des tableaux. Dans ce cas, le remplacement s'effectue conformément aux index.

Str_replace()

Vous pouvez supprimer les espaces d'une chaîne en PHP en utilisant la méthode str_replace(). Il remplace toutes les occurrences de la chaîne de recherche par la chaîne de remplacement.

str_replace mixte ($search mixte, $replace mixte, $subject mixte [, int &$count ])

Utilisé comme méthode simplifiée preg_replace().

  1. $search - la valeur à trouver.
  2. $replace - la chaîne à remplacer.
  3. $subject - l'objet dans lequel la recherche et le remplacement sont effectués.
  4. $count définit le nombre de remplacements.
$bodytag = str_replace("%body%", "noir", " "); // attribue : Hll Wrld f PHP $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); // assigne : Vous devriez manger de la pizza, de la bière et des glaces tous les jours $phrase = "Vous devriez manger des fruits , des légumes et des fibres tous les jours."; $healthy = array("fruits", "legumes", "fiber"); $yummy = array("pizza", "beer", "ice cream"); ​​​​​$ newphrase = str_replace($healthy, $yummy, $phrase); // attribue : 2 $str = str_replace("ll", "", "bon sang, mademoiselle Molly !", $count);

Exemple de recherche et de remplacement d'espaces

Ces fonctions s'appliquent dans la plupart des situations, même les plus complexes.

Par exemple, l'utilisateur a saisi des données qui seront ensuite imprimées à l'écran. Pour améliorer la lisibilité et la perception du texte dans son ensemble, ces informations doivent être traitées - supprimez les espaces répétés, remplacez-les par des espaces uniques.

$text1 = "Texte long avec espaces supplémentaires";

Dans ce cas, vous pouvez voir qu’il y a deux ou trois espaces entre les mots. La procédure pour supprimer les espaces en PHP est la suivante.

1. Vous devez d’abord transformer une chaîne en un tableau de chaînes à l’aide d’une fonction.

Exploser(« », $text1)​

Un seul espace est utilisé comme délimiteur. De cette façon, les parties du corps qui ne sont pas des éléments distincts du tableau contiendront un espace de moins.

2. Le résultat est un tableau de chaînes comme celui-ci :

$array = ["Long", "volumineux", "texte", "avec", "espaces supplémentaires"]​

3. Chaque élément est traité par la fonction :

Preg_replace("/\s+/", " ", $text1)​

Pour rechercher un ou plusieurs espaces, utilisez l'expression régulière /\s+/. Toutes les correspondances trouvées sont remplacées par la chaîne « ». La recherche s'effectue dans la variable $text1.

4. En conséquence, nous obtenons une chaîne avec le nombre correct d'espaces, qui est facilement perçu par l'utilisateur.

Dans n'importe quelle langue, lorsque vous travaillez avec des chaînes, une tâche typique consiste à supprimer les espaces au début et à la fin de la ligne. En PHP, il existe trois fonctions à cet effet : ltrim(), rtrim(), trim(). La fonction ltrim() supprime les espaces au début d'une ligne, rtrim() - à la fin d'une ligne, trim() - au début et à la fin. Ce qui est intéressant, c'est que ces fonctions, en plus des espaces, suppriment également les séquences de nouvelle ligne, de retour chariot, de tabulation et de caractères nuls.

$exemple = "\tSalut tout le monde\n"; var_dump(trim($exemple)); var_dump(rtrim($exemple)); var_dump(ltrim($exemple));

En conséquence nous obtenons :

String "Salut tout le monde" (longueur=12) string "Salut tout le monde" (longueur=14) string "Salut tout le monde" (longueur=13)

Le plus intéressant est que les fonctions ci-dessus peuvent également supprimer les caractères spécifiés par l'utilisateur. Pour ce faire, les fonctions ci-dessus doivent passer en deuxième argument une chaîne contenant les caractères à supprimer. Par exemple:

$exemple = "YSalut tout le monde\n"; var_dump(trim($exemple, " y")); var_dump(rtrim($exemple, " y\n")); var_dump(ltrim($exemple, " yH"));

Par conséquent:

Chaîne "Salut tout le monde" (longueur=13) chaîne " ySalut tout le monde" (longueur=13) chaîne "i tout le monde " (longueur=12)