Textarea-Feld auslesen

scriper

Eta Capricorni
ID: 57943
L
3 Mai 2006
2.721
316
Hallo zusammen,
ich habe ein Problem, vielleicht habt ihr ne Eingebung:

Ich habe ein HTML-Formular mit 2 Textareas.

Ins erste kommen Daten im Format II01379;II03832;II00865 [...]

Ins zweite kommen Daten im Format:

II00865
II00908
II04061

...beides wird vom User hineinkopiert aus irgendwelchen Listen.

Ich möchte nun beide in ein eigenes Array einlesen, die beiden Arrays zusammenführen und aus diesem Array ein neues aufbauen.
Ich nehme also immer einen Wert aus dem Array, schaue ob es schon im "neuen" Array vorhanden ist und möchte es wenn nicht hinzufügen. Hier mein Quelltext:

PHP:
<?php if (isset($_POST['submitted'])) {

//LOS


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

  
  $array = array_merge($kennungen_portal, $kennungen_liste); 

  
  $endliste = array();
  foreach($array as $kennung){

    if(in_array($kennung, $endliste)){
        echo $kennung." ist doppelt <br />";
    }else{
        array_push($endliste, $kennung);
    }
  }

echo "<br />";
var_dump($kennungen_portal);
echo "<br />";
var_dump($kennungen_liste);


//ENDE
} else { ?>
<form method="POST" action="<?php echo $SCRIPT_NAME ?>">

<textarea name="kennungen_portal" rows="1" cols="100"></textarea><br />
<textarea name="kennungen_liste" rows="50" cols="8"></textarea>

<input type="submit" name="submitted" value="LOS!"></form>
<?php } // end of form ?>
Ausgabe ist seltsamerweise:
Code:
array(3) {   [0]=>   string(7) "II01379"   [1]=>   string(7) "II03832"   [2]=>   string(7) "II00865" } 
array(4) {   [0]=>   string(8) "II00865 "   [1]=>   string(8) "II00908 "   [2]=>   string(8) "II04061 "   [3]=>   string(0) "" }
Wieso werden hier im 2. Array Leerzeichen angehangen? Wieso ist das letzte Element leer?

Ich verstehs nicht, bitte um Hilfe!

LG,
Scriper
 
Danke!!!

Es geht weiter: Wieso wird hier der Wert aus dem Array $endliste nicht gelöscht?

PHP:
<?php if (isset($_POST['submitted'])) {

//LOS


$kennungen_portal = explode(";", $_POST['kennungen_portal']);
$kennungen_liste = explode("\r\n", $_POST['kennungen_liste']);

  
  $array = array_merge($kennungen_portal, $kennungen_liste); 

  
  $endliste = array();
  foreach($array as $kennung){

    if(in_array($kennung, $endliste)){
        echo $kennung." ist doppelt <br />";
        $del = array_search($kennung, $endliste);
        echo $del;
        unset($endliste['$del']);
    }else{
        array_push($endliste, $kennung);
    }
  }

echo "<br>";
var_dump($endliste);


//ENDE
} else { ?>
<form method="POST" action="<?php echo $SCRIPT_NAME ?>">

<textarea name="kennungen_portal" rows="1" cols="100"></textarea><br />
<textarea name="kennungen_liste" rows="50" cols="8"></textarea>

<input type="submit" name="submitted" value="LOS!"></form>
<?php } // end of form ?>
 
Weil Du nicht $endliste['$del'] schreiben kannst / sollst.
Ich denke Du meinst $endliste[$del] ;) oder $endliste["$del"], die einfachen Hochkommas parsen die Variable $del nicht.
 
Und gegen das Problem mit dem \r könnte trim() helfen glaub ich. Dann kannst du einfach \n nehmen um auch auf anderen Rechnern dein Script lauffähig zu haben.