### Sous-chaînes

Trois fonctions permettent de travailler sur des parties de chaînes.

- substr() renvoie une partie de chaîne. Cette fonction est très souvent utilisée et offre de nombreuses façons différentes pour se positionner et sélectionner les parties de chaînes. Le recours à la doc PHP est très important pour ne pas passer à côté d'une façon ou d'une autre quand on débute.
- substr_count() compte combien d'occurence d'une chaîne se trouve dans une autre.
- substr_replace() remplace une chaîne à l'intérieur d'une autre chaîne.

Exemple : parties de chaînes
<?php require('bib_fonctions.php'); htmlDebut('Parties de chaînes'); $x = 'Le langage PHP est un langage facile à apprendre'; echo '<h4>Chaîne de test</h4>', $x; echo '<h4>Position 3, 8 caractères</h4>', substr($x, 3 , 8); echo '<h4>Position 10, jusqu\'à la fin de la chaîne</h4>', substr( $x, 10); echo '<h4>Les 7 derniers caractères</h4>', substr($x, -7); echo '<h4>Nombre de caractère "a"</h4>', substr_count($x, 'a'); echo '<h4>Nombre de mot "langage"</h4>', substr_count($x, 'langage'); htmlFin(); ?>
Exemple : remplacement de chaîne
<?php require('bib_fonctions.php'); htmlDebut('Remplacement de chaîne'); $x = 'Le langage PHP'; echo '<h4>Chaîne de test</h4>', $x; //------------------------------------------------------ echo '<h4>Remplace "langage" par "script"</h4>'; $x = substr_replace($x, 'script', 3, 7); // langage commence à la position 3 et il y a 7 caractères echo $x; //------------------------------------------------------ echo '<h4>Insérer sans remplacer</h4>'; $x = substr_replace ($x, ' langage de', 2, 0); // " langage de" est inséré à la position 2. // Il faut donner 0 comme nombre de caractères à remplacer echo $x; //------------------------------------------------------ echo '<h4>Supprimer des caractères</h4>'; $x = substr_replace ($x, '', 10, 10); // script est situé à la position 10 // il faut passer une chaîne vide à cette position echo $x; //------------------------------------------------------ echo '<h4>Position négative</h4>'; $x = substr_replace ($x, 'HTML', -3, 3); // On peut travailler à partir de la fin de la chaîne // en donnant une position négative echo $x; htmlFin(); ?>

### Transformer une chaîne en tableau

Si un même délimiteur est utilisé pour séparer les parties d'une chaîne, elle peut être transformée en tableau très facilement avec la fonction explode().

Exemple : transformer une chaîne en tableau
<?php require('bib_fonctions.php'); htmlDebut('Transformer une chaîne en tableau'); echo '<h4>Exemple séparateur -</h4>'; $x = 'François-Piat-407C'; $t = explode('-', $x); foreach($t as $cle => $valeur) { echo '<br>', $cle, ' = ', $valeur; } echo '<h4>Exemple séparateur espace</h4>'; $x = 'Je m\'appelle François Piat'; $t = explode(' ', $x); for ($i = 0; $i < count($t); $i++) { echo '<br>', $i, ' = ', $t[$i]; } htmlFin(); ?>

### Décomposer une URL

La fonction parse_url retourne un tableau des composants d'une Url. Les clés possibles du tableau sont : scheme, host, port, user, pass, path, query et fragment.

Exemple : décomposer une URL
<?php require('bib_fonctions.php'); htmlDebut('Décomposer une URL'); $x = 'http://www.site.com/repert/page.html?a=100&b=200'; $t = parse_url($x); echo "Parties de l'url $x <pre>"; print_r($t); htmlFin(); ?>