Lecture de \n hasardeuse

Résolu/Fermé
BlueSkyBalmung Messages postés 18 Date d'inscription mardi 22 avril 2014 Statut Membre Dernière intervention 28 juillet 2016 - Modifié par BlueSkyBalmung le 16/05/2014 à 14:27
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 16 mai 2014 à 14:36
Bonjour,

je vous embête pour un problème pour la lecture de \n dans une chaîne, en effet j'ai l'impression que lorsque que je fais une lecture de mes caractères 1 par 1 dans une chaine
$text, je n'ai aucun moyen de récuperer un caractère \n puisque je test pour les besoins de mon programme chacun des caractères d'une chaine et je fais une action si je tombe sur celui-ci, malheureusement je n'en détecte aucun alors que ma chaîne en comporte plusieurs .
j'écris quelque chose dans le genre

if($text[$i]=='\n'){
//action
}

autant que je sache il n'apparait pas sur 2 caractères ?
j'ai essayé de remplacer les ' ' par des " " mais rien ne change, si vous avez une idée, et je suis sur que le $i est incrémenté


A voir également:

2 réponses

Tu as essayé avec deux antislash ?
if($text[$i]!='\\n'){
Antislash est un caractère spécial en PHP, je ne crois pas que tu puisses l'utiliser comme ça.
1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
16 mai 2014 à 14:36
Salut,

Essaye ceci pour faire tes tests :
echo '<pre>';
var_dump('\n'); // correspond à la chaine \n
var_dump("\n"); // correspond à un saut de ligne

var_dump(ord("\n"));
var_dump(ord($text[$i]));
echo '</pre>';


Attention si ta chaine de caractères est encodée en utf-8, les accents et caractères non ascii sont stockés sur 2 octets (d'où l'intérêt des fonctions multi bytes mb_*). Exemple :
var_dump(strlen('é')); // affiche 2 en utf-8
var_dump(mb_strlen('é')); // affiche 1 en utf-8


Bonne journée
0