Page 1 sur 1

explode \r\n

Posté : 22 janv. 2008, 14:49
par yuuzhantar
Bonjour

je suis un peu bloqué dans un petit bout de script et je n'arrive pas a voir pourquoi çà ne marche pas

en gros voilà mon script :
un textarea renvoie les lignes que l'on a tapé et ensuite un explode les lignes dans un tableau
un petit foreach pour afficher mais çà ne marche pas , je ne vois pas pourquoi
<?php
$post=$_POST['post'];
$val=$_POST['val'];

if(empty($post))
	{
	?>
	<form id="form1" name="form1" method="post" action="essai7.php">
	<textarea name="val" id="val" cols="45" rows="5"></textarea>
	<input type="submit" name="button" id="button" value="Envoyer" />
	<input type="hidden" name="post" value="post"/>
	</form>
	<?php
	}
else
	{
	if(preg_match('`\r\n`',$val)) { echo "<br>oui"; }
	$vals=explode('\r\n',$val);
	foreach ($vals as $clee => $valeur)
		{
		echo"<br> $clee -> $valeur<br>";
		}
	echo nl2br($val);
	?>
	<form id="form1" name="form1" method="post" action="essai7.php">
	<textarea name="val" id="val" cols="45" rows="5"><?php echo $val; ?></textarea>
	<input type="submit" name="button" id="button" value="Envoyer" />
	<input type="hidden" name="post" value="post"/>
	</form>
	<?php
	}
et çà m'affiche çà :
oui
0 -> lo lu lo
lo

lu
lo
avez vous une idée ?
( la chaine contient bien \r\n car le preg_match dit que oui )

merci

Posté : 22 janv. 2008, 14:53
par mere-teresa
Heu, tu envoies quoi comme chaîne à ton script ?

Posté : 22 janv. 2008, 14:58
par Genova
Bonjour,
les \n ou \r ne sont interprétés que dans des doubles quote "\n" et non dans des simple quotes '\n'.

Tu dois donc utiliser
vals=explode("\r\n",$val);

Posté : 22 janv. 2008, 14:59
par Nagol
Edit: avait oublié mon cerveau avant de poster

Posté : 22 janv. 2008, 15:18
par yuuzhantar
Bonjour

merci pour vos réponse,
effectivement çà venait des doubles quotes, merci Genova
je comprends pourquoi nl2br fesait bien le boulot

sinon pour Nagol, je ne pense pas qu'il y avait de mixage entre \n et \r\n mais je n'ai pas vraiment compris ce que tu voulais dire par là

je tapais çà : (imaginons que le cadre du quote soit le textarea
lo

lu
lo
encore merci

Yuuzhantar