Source: lesson_16_function_strrpos.php | Résultat |
<?php /* strrpos int strrpos ( string haystack, string needle, int offset) strrpos retourne la position numérique de la dernière occurrence du caractère needle dans la chaîne haystack . Needle doit être un caractère unique en PHP 4. Si une chaîne est passée dans ce paramètre, seul le premier caractère sera utilisé. Attention si vous avez des caratères accentués dans une chaine en UTF8 le comptage des caractères sera faux (jusquen PHP6 ?) */ ?> <h3>Chaine en UTF_8 : <br>le comptage des caractères est faux </h3> <?php $maChaine = "biscuit à la crème"; show_strrpos($maChaine ) ; echo "Note : ligne 4 : le <b>à</b> est en UTF8, ligne 5 : le <b>à</b> est en ISO"; ?> <h3>Chaine en ISO : <br>le comptage des caractères est bon </h3> <?php $maChaine = utf8_decode("biscuit à la crème"); show_strrpos($maChaine ) ; echo "Note : ligne 4 : à est en UTF8, ligne 5 : le à est en ISO";
function show_strrpos($maChaine ) { $maChaine_utf8 = "biscuit à la crème"; $monCar[1] = "i"; $monCar[2] = "x"; $monCar[3] = "b"; $monCar[4] = "à"; $monCar[5] = utf8_decode("à"); $monCar[6] = "a"; $monCar[7] = "chariot"; echo "<table cellpadding=3><tr> <th>N°</th> <th>Chaîne</th> <th>Car</th> <th>strpos<br />(Chaîne,car)</th> <th>strrpos<br />(Chaîne,car)</th></tr><tr>"; for ($i=1 ; $i<8 ; $i++) { echo "<td class=params>$i</td> <td class=inputs>$maChaine_utf8</td> <td align=center class=params>"; ($i==5)? print utf8_encode($monCar[$i]) : print $monCar[$i] ; echo "</td> <td align=center class=outputs>". strpos($maChaine,$monCar[$i])."</td> <td align=center class=outputs>". strrpos($maChaine,$monCar[$i])."</td></tr><tr>"; } echo "</table>"; }
| Chaine en UTF_8 : le comptage des caractères est faux
N° |
Chaîne |
Car |
strpos (Chaîne,car) |
strrpos (Chaîne,car) | 1 |
biscuit à la crème |
i |
1 |
5 | 2 |
biscuit à la crème |
x |
|
| 3 |
biscuit à la crème |
b |
0 |
0 | 4 |
biscuit à la crème |
à |
8 |
8 | 5 |
biscuit à la crème |
à |
|
| 6 |
biscuit à la crème |
a |
12 |
12 | 7 |
biscuit à la crème |
chariot |
|
| |
Note : ligne 4 : le à est en UTF8,
ligne 5 : le à est en ISOChaine en ISO : le comptage des caractères est bon
N° |
Chaîne |
Car |
strpos (Chaîne,car) |
strrpos (Chaîne,car) | 1 |
biscuit à la crème |
i |
1 |
5 | 2 |
biscuit à la crème |
x |
|
| 3 |
biscuit à la crème |
b |
0 |
0 | 4 |
biscuit à la crème |
à |
|
| 5 |
biscuit à la crème |
à |
8 |
8 | 6 |
biscuit à la crème |
a |
11 |
11 | 7 |
biscuit à la crème |
chariot |
|
| |
Note : ligne 4 : à est en UTF8, ligne 5 : le à est en ISO |