2009-09-09 10 views
1

J'ai un formulaire avec une zone de texte en html. Je veux obtenir le contenu de cette zone de texte en php afin que chaque ligne puisse être stockée dans un tableau. J'ai essayé d'utiliser implode avec '/ n'. mais ça ne marche pas. Comment puis je faire ça.Conversion du contenu d'une zone de texte en un tableau

Voici mon code

$notes = explode('/n',$_POST['notes']); 

Répondre

9

Vous devez utiliser:

$notes = explode("\n", $_POST['notes']); 

(Retour barre oblique, pas slash, et des guillemets doubles au lieu de guillemets simples)

7

solution de Palantir ne fonctionnera que si les lignes se terminent par \ n (fin de ligne par défaut Linux).

Par exemple.

$text  = "A\r\nB\r\nC\nD\rE\r\nF";  
$splitted = explode("\n", $text); 

var_dump($splitted); 

va afficher:

array(5) { 
    [0]=> 
    string(2) "A " 
    [1]=> 
    string(2) "B " 
    [2]=> 
    string(1) "C" 
    [3]=> 
    string(4) "D E " 
    [4]=> 
    string(1) "F" 
} 

Dans le cas contraire, vous devez utiliser ceci:

$text  = "A\r\nB\r\nC\nD\rE\r\nF"; 
$splitted = preg_split('/\r\n|\r|\n/', $text); 
var_dump($splitted); 

Ou ceci:

$text  = "A\r\nB\r\nC\nD\rE\r\nF"; 
$text  = str_replace("\r", "\n", str_replace("\r\n", "\n", $text)); 
$splitted = explode("\n", $text); 
var_dump($splitted); 

Je pense que le dernier sera plus rapide car il n'utilise pas d'expressions régulières.

Par exemple.

$notes = str_replace(
    "\r", 
    "\n", 
    str_replace("\r\n", "\n", $_POST[ 'notes' ]) 
); 

$notes = explode("\n", $notes); 
0

Ne pas utiliser PHP_EOL pour textarea de forme à un tableau, utilisez:

array_values(array_filter(explode("\n", str_replace("\r", '', $_POST['data'])))) 
Questions connexes