Les chaînes sont l'un des types scalaires fondamentaux dans de nombreux langages de programmation, y compris PHP. Ils représentent des données textuelles, des caractères individuels aux documents entiers.
La programmation de chaîne la plus simple implique un texte à un octet, qui peut représenter 256 caractères différents. L'ASCII est le codage le plus courant. Le langage PHP de base possède de nombreuses fonctions utiles pour manipuler de telles chaînes.
Si vous avez fait de la programmation en PHP, vous avez probablement rencontré echo , mais vous ne réalisez peut-être pas qu'il ne s'agit en fait pas du tout d'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'une fonction.
Vous l'utiliserez presque toujours comme ceci :
echo "Hello, world" ;
Mais vous pouvez en fait l'appeler comme une fonction :
echo("Bonjour, monde");
Bien que cela y ressemble, ce n'est toujours pas un appel de fonction. Par exemple, vous ne pouvez pas affecter sa valeur de retour à une variable :
$a =echo("Hello, world");
Erreur d'analyse :erreur de syntaxe, 'echo' inattendu (T_ECHO)
Une autre façon de sortir la valeur d'une chaîne consiste à utiliser print. Encore une fois, ce n'est pas vraiment une vraie fonction, même si c'est plus proche d'un que d'écho. Comme echo, vous pouvez l'appeler sans parenthèses :
print "Hello, world" ;
Mais, contrairement à echo, il renvoie une valeur que vous pouvez attribuer, bien que cette valeur soit toujours 1 :
$a =print("Hello, world");
echo $a; // 1
Le printf fonction est en fait une fonction réelle. Comme écho et imprimer , il génère des chaînes, mais il a un comportement unique qui reflète la même fonction du langage c :
$username ="John" ;
$longueur =printf("Bonjour, %s", $nom d'utilisateur); // "Bonjour John"
echo $longueur ; // 11
Le premier argument est toujours une chaîne, entre guillemets doubles. Mais printf effectuera divers remplacements sur des 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 $username .
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 l'espace physique que la chaîne occupera sur une ligne de commande.
En parlant de longueur de chaîne, la manière standard de déterminer la longueur d'une chaîne est le strlen une 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 le texte ASCII, le nombre d'octets est le même que le nombre de caractères :
$length =strlen("Hello, World");
echo $longueur ; // 12
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 procéder, et la première présentée ici spécifie la position et la longueur de la sous-chaîne requise. Le substr fonction extrait une partie fixe d'une chaîne en fonction de ces paramètres.
$greeting =substr("Hello, World", 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 le décalage et la longueur. Si offset est négatif, le résultat commencera à compter à partir de la fin de la chaîne, pas du début :
$greeting =substr("Hello, World", -5, 5);
echo $salutation ; // "Monde"
Si la longueur est négative, elle fera référence au nombre de caractères supprimés, plutôt qu'au nombre inclus :
$greeting =substr("Hello, World", 0, -6);
echo $salutation ; // "Bonjour,"
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("Hello, World", ",");
echo $pos; // 5
Vous pouvez utiliser strpos en conjonction avec substr pour fournir une méthode plus générale pour extraire une partie d'une chaîne :
$string ="Hello, World" ;
$pos =strpos($string, ",");
$first_part =substr($string, 0, $pos);
echo $première_partie ; // "Bonjour"
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. Ils le font pour chaque caractère d'une chaîne ASCII :
$original ="bonjour, MONDE" ;
$upper =strtoupper($original);
$inférieur =strtoinférieur($original);
echo "$inférieur $supérieur" ; // "bonjour, monde BONJOUR, MONDE"
Parfois, vous vous retrouverez avec une chaîne qui a des espaces de début ou de fin :espaces, tabulations ou caractères de saut de ligne. C'est souvent indésirable, mais coupez pouvez le supprimer :
$trimmed =trim(" Hello, World ");
echo $coupé ; // "Bonjour, le monde"
L'explosion La fonction semble dangereuse mais ne vous inquiétez pas, elle ne cause aucun dommage durable ! Au lieu de cela, il 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 souhaitez diviser une phrase en mots séparés, par exemple.
$sentence ="Le renard brun rapide saute par-dessus le chien paresseux" ;
$mots =éclater(" ", $phrase);
Les $mots variable est maintenant un tableau contenant des mots individuels :
[ "Le", "rapide", "marron", "renard", "saute", "par dessus", "le", "paresseux", "chien" ]
Comme exploser , le str_split La fonction décompose une chaîne en un tableau de chaînes plus petites. Contrairement à éclater, les chaînes finales ne sont pas déterminées par leur contenu, mais par leur longueur.
$parts =str_split("Hello, World", 6);
Les $parties array contient maintenant deux sous-chaînes, chacune contenant six caractères :
[ "Bonjour," " Monde" ]
Vous pouvez effectuer une simple opération de recherche et de remplacement sur une chaîne en utilisant str_replace . Il prend 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 $résultat ; // "HelloOO, WOOrld"
Étant donné que PHP est souvent utilisé dans le développement Web, la gestion du texte est une tâche courante.
Les fonctions présentées ici sont parmi les plus utiles pour le traitement de texte en PHP. Il existe une centaine de fonctions de gestion de chaînes intégrées au langage lui-même.
N'oubliez pas que les fonctions présentées ici sont à utiliser avec des chaînes ASCII, et non avec des chaînes Unicode. PHP prend également en charge Unicode et d'autres schémas de codage de caractères multi-octets, avec un ensemble de fonctions distinct.