Les chaînes sont l'un des types scalaires fondamentaux dans de nombreux langages de programmation, y compris PHP. Elles représentent des données textuelles, des caractères individuels aux documents entiers.
La programmation de chaînes la plus simple implique du texte à un octet, qui peut représenter 256 caractères différents. ASCII est l'encodage le plus courant. Le langage PHP de base a de nombreuses fonctions utiles pour manipuler ces chaînes.
Comment afficher le contenu d'une chaîne
Si vous avez fait de la programmation en PHP, vous avez probablement rencontré écho mais vous ne réalisez peut-être pas que ce n'est pas du tout une fonction. En fait, echo est une construction de langage, donc même si vous l'utilisez plus que n'importe quelle fonction de chaîne réelle, vous ne pouvez pas toujours l'utiliser à la place d'unfonction.
Vous l'utiliserez presque toujours comme ceci:
echo "Bonjour le monde";
Mais vous pouvez en fait l'appeler comme une fonction :
echo "Bonjour le monde";
Bien que cela y ressemble, il ne s'agit toujours pas d'un appel de fonction. Par exemple, vous ne pouvez pas affecter sa valeur de retour à une variable:
$ a = echo "Bonjour le monde";
Erreur d'analyse: erreur de syntaxe, 'écho' inattendu T_ECHO
Une autre façon de produire la valeur d'une chaîne est d'utiliser print. Encore une fois, ce n'est pas vraiment une fonction vraie, bien qu'elle soit plus proche de un que echo. Comme echo, vous pouvez l'appeler sans parenthèses :
imprimer "Bonjour le monde";
Mais, contrairement à echo, il renvoie une valeur que vous pouvez attribuer, bien que cette valeur soit toujours 1 :
$ a = print "Bonjour le monde";
echo $ a; // 1
1. Sortie d'une chaîne à l'aide d'une fonction réelle
Le printf la fonction est en fait une fonction réelle. Comme écho et imprimer , il produit des chaînes, mais il a un comportement unique qui reflète la même fonction du langage c :
$ username = "John";
$ length = printf "Hello,% s", $ username; // "Hello, John"
echo $ longueur; // 11
Le premier argument est toujours une chaîne, entre guillemets. Mais printf effectuera divers remplacements sur les séquences de caractères spéciaux à l'intérieur de la chaîne. Ces séquences commencent par un symbole de pourcentage, comme celui ci-dessus, % s . Dans ce cas précis,% s représente une chaîne et printf la remplace par l'argument suivant, qui est la valeur de $ nom d'utilisateur .
Le printf la fonction renvoie une valeur utile, la longueur de la chaîne formatée. Cela peut être utile pour le code qui ne peut pas connaître la longueur à l'avance, lors du passage de variables à printf par exemple. Vous pouvez utiliser cette valeur de retour pour déterminer la quantité d'espace physique que la chaîne occupera sur une ligne de commande.
2. Obtenir la longueur d'une chaîne
En parlant de longueur de chaîne, la méthode standard pour déterminer la longueur d'une chaîne est la strlen fonction. Cette fonction est très simple: elle prend un seul argument de chaîne et renvoie le nombre d'octets sous forme d'entier. Comme mentionné précédemment, pour texte ASCII , le nombre d'octets est le même que le nombre de caractères:
Le texte ASCII semble cryptique, mais il a de nombreuses utilisations sur Internet.
$ length = strlen "Bonjour, Monde";
echo $ longueur; // 12
3. Extraction d'une partie d'une chaîne
Une tâche très courante, lorsqu'il s'agit de chaînes, est l'extraction d'une partie de cette chaîne. Il existe plusieurs façons de le faire, et la première présentée ici spécifie la position et la longueur de la sous-chaîne requise. Le substr la fonction extrait une partie fixe d'une chaîne en fonction de ces paramètres.
$ salut = substr "Bonjour, Monde", 0, 5;
echo $ salutation; // "Bonjour"
Notez que, comme dans la plupart des langages de programmation, PHP compte les décalages de chaîne à partir de 0. PHP diffère de certains langages en ce que le deuxième paramètre de cette fonction est la longueur de la chaîne résultante.
Une autre différence est que PHP prend en charge les valeurs négatives pour l'offset et la longueur. Si l'offset est négatif, le résultat commencera à compter à partir de la fin de la chaîne, pas du début :
$ salut = substr "Bonjour, Monde", -5, 5;
echo $ voeux; // "Monde"
Si la longueur est négative, cela fera référence au nombre de caractères supprimés, plutôt qu'au nombre inclus :
$ salut = substr "Bonjour, Monde", 0, -6;
echo $ salutation; // "Bonjour,"
4. Recherche dans une chaîne
Une partie importante du traitement de texte consiste à trouver l'emplacement d'une chaîne dans une autre. En PHP, vous pouvez y parvenir avec le strpos fonction:
$ pos = strpos "Bonjour, Monde", ",";
echo $ pos; // 5
Vous pouvez utiliser des strpos en conjonction avec substr pour fournir une méthode plus générale pour extraire une partie d'une chaîne:
$ string = "Bonjour, Monde";
$ pos = strpos $ chaîne, ",";
$ first_part = substr $ string, 0, $ pos;
echo $ first_part; // "Bonjour"
5. Conversion de la casse d'une chaîne
Les chaînes ASCII traditionnelles ont des variantes majuscules et minuscules bien définies. La version majuscule de a est A. La minuscule de Z est z. Le strtoupper et strtolower les fonctions effectuent ces conversions. Elles le font pour chaque caractère d'une chaîne ASCII:
$ original = "bonjour, MONDE";
$ supérieur = strtoupper $ original;
$ inférieur = strtolower $ original;
echo "$ lower $ upper"; // "bonjour, monde BONJOUR, MONDE"
6. Élimination des espaces blancs
Parfois, vous vous retrouverez avec une chaîne comportant des espaces au début ou à la fin: espaces, tabulations ou caractères de nouvelle ligne. Ceci est souvent indésirable, mais couper peut le supprimer :
$ trimmed = trim "Bonjour, Monde";
echo $ trimmed; // "Bonjour, Monde"
7. Briser une chaîne par un séparateur
Le exploser la fonction semble dangereuse mais ne vous inquiétez pas, elle ne cause aucun dommage durable! Au lieu de cela, elle convertit une chaîne en un tableau de chaînes, séparées par une autre chaîne - souvent un caractère. Cela peut être utile si vous voulez casserune phrase en mots séparés, par exemple.
$ phrase = "Le renard brun rapide saute par-dessus le chien paresseux";
$ mots = exploser "", $ phrase;
Le $ mots la variable est maintenant un tableau contenant des mots individuels:
[«Le», «rapide», «brun», «renard», «saute», «par dessus», «le», «paresseux», «chien»]
8. Diviser une chaîne en sous-chaînes de longueur fixe
comme exploser , le str_split la fonction divise une chaîne en un tableau de chaînes plus petites. Contrairement à exploser, les chaînes finales ne sont pas déterminées par leur contenu, mais par leur longueur.
$ parts = str_split "Bonjour, Monde", 6;
Le $ pièces le tableau contient maintenant deux sous-chaînes de six caractères chacune:
["Bonjour", "Monde"]
9. Rechercher et remplacer dans une chaîne
Vous pouvez effectuer une simple opération de recherche et de remplacement sur une chaîne en utilisant str_replace . Il faut trois arguments: une chaîne à rechercher, une chaîne de remplacement et une chaîne d'origine à rechercher. La fonction renvoie la nouvelle chaîne :
$ result = str_replace "o", "OO", "Hello, World";
echo $ result; // "HellOO, WOOrld"
PHP fournit de nombreuses façons utiles de travailler avec du texte
Puisque PHP est souvent utilisé dans le développement Web, le traitement du texte est une tâche courante.
Les fonctions présentées ici sont parmi les plus utiles pour traiter du texte en PHP. Il y en a une centaine fonctions de gestion des chaînes intégré dans la langue elle-même.
N'oubliez pas que les fonctions présentées ici sont destinées à être utilisées avec des chaînes ASCII, pas avec des chaînes Unicode. PHP prend également en charge Unicode et d'autres schémas d'encodage de caractères multi-octets, avec un ensemble distinct de fonctions .