explode \r\n

Eléphant du PHP | 259 Messages

22 janv. 2008, 14:49

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
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

22 janv. 2008, 14:53

Heu, tu envoies quoi comme chaîne à ton script ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 928 Messages

22 janv. 2008, 14:58

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);

ViPHP
ViPHP | 3300 Messages

22 janv. 2008, 14:59

Edit: avait oublié mon cerveau avant de poster
Modifié en dernier par Nagol le 22 janv. 2008, 16:37, modifié 1 fois.
Fait du php depuis que ca existe ou presque :)

Eléphant du PHP | 259 Messages

22 janv. 2008, 15:18

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
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites