Problème avec nl2br et explode

Michel -  
 Michel -
Bonjour,
J'ai un problème en essayant d'utiliser explode à la suite de nl2br. il ne reconnait pas les br générés.

source PHP
$a=nl2br($Tvillages2[0]);
	$b=explode("<br>",$a);$n=count($b);
	if($debug){echo "<h2>variable \$a $a tableau \$b  </h2>";print_r($b);}


code HTML du traitement:

<h2>variable $a <br>
@#balistagrad (480|628) C64 	5.966 	33.729 37.816 22.727 	142373 	23794/24000<br>
@#ouah (489|626) C64 	4.823 	33.878 53.199 13.139 	142373 	7736/20476<br>
bonus argileux (493|627) C64 	1.452 	11.076 40.006 25.878 	50675 	1308/1613<br>
bouiboui (485|623) C64 	5.165 	21.200 2.935 25.874 	94184 	6206/10848<br>
colombo53 (476|625) C64 	4.483 	15.441 13.029 4.388 	325337 	1898/20476<br>
dolitib (491|624) C64 	4.528 	3.512 8.450 40.139 	76604 	6334/7896<br>
Herria Bonus (480|625) C64 	4.816 	7.903 4.827 24.178 	94184 	10203/10848<br>

Opocno (492|628) C64 	1.404 	2.048 41.681 9.119 	50675 	1473/3569<br>
Tabor (472|628) C64 	3.486 	6.345 25.670 26.079 	62305 	9255/9255<br>
Village sympa (475|629) C64 	1.981 	3.174 12.567 39.510 	41217 	3573/4183<br>
 tableau $b  </h2>Array
(
    [0] => <br>
@#balistagrad (480|628) C64 	5.966 	33.729 37.816 22.727 	142373 	23794/24000<br>
@#ouah (489|626) C64 	4.823 	33.878 53.199 13.139 	142373 	7736/20476<br>
bonus argileux (493|627) C64 	1.452 	11.076 40.006 25.878 	50675 	1308/1613<br>

bouiboui (485|623) C64 	5.165 	21.200 2.935 25.874 	94184 	6206/10848<br>
colombo53 (476|625) C64 	4.483 	15.441 13.029 4.388 	325337 	1898/20476<br>
dolitib (491|624) C64 	4.528 	3.512 8.450 40.139 	76604 	6334/7896<br>
Herria Bonus (480|625) C64 	4.816 	7.903 4.827 24.178 	94184 	10203/10848<br>
Opocno (492|628) C64 	1.404 	2.048 41.681 9.119 	50675 	1473/3569<br>
Tabor (472|628) C64 	3.486 	6.345 25.670 26.079 	62305 	9255/9255<br>
Village sympa (475|629) C64 	1.981 	3.174 12.567 39.510 	41217 	3573/4183<br>

)

4 réponses

le père
 
Bonjour

nl2br ne génère pas des balises <br> mais des balises <br />...
0
Michel
 
Merci de la réponse,
Mais: j'ai d'abord essayé cette possibilité, mais si on regarde le source html, ce n'est pas <br />
mais bien <br>
donc pas encore la sollutions
0
le père
 
ce n'est pas <br />mais bien <br> désolé, je n'avais pas compris que cette partie représentait le résultat de l'exécution...
Ça veut donc dire que ta version de PHP est antérieure à 4.05, car c'est clairement indiqué dans la doc : <br> avant la version 4.05, <br /> depuis.
Quelle version as-tu ? Peut-être le explode avait-il lui aussi un comportement différent dans des version plus anciennes, car chez moi ça marche bien (en <br />). Je fouille dans mes archives
0
le père
 
Il est possible, bien que je ne voie ça écrit nulle part, que des version de PHP un peu anciennes n'acceptent qu'un seul caractère comme séparateur et non pas une chaîne. Tous les exemples de la doc n'utilisent qu'un seul caractère.
Dans ce cas, tu peux t'en tirer en n'utilisant pas nl2br et en faisant le explode sur la fin de ligne "\n" (qui est un seul caractère même si on utilise deux signes pour l'écrire)
$a=$Tvillages2[0];
$b=explode("\n",$a);$n=count($b);
if($debug){echo '<h2>variable \$a',nl2br($a),' tableau \$b  </h2><pre>';print_r($b);echo '</pre>';}
0
Michel
 
Mon problème est résolu avec ta solution
C'est encore plus simple que de passer par nl2br..

Merci beaucoup.
0