Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrzeilige Eingabefelder auslesen und in Array schreiben
Kaldoran
19.09.2007, 20:38:44
Hallo,
Ich möchte ein mehrzeiliges Eingabefeld (textarea) aus einem html Formular per submit in ein php array schreiben. Jetzt weis ich halt nicht genau, wie ich im php Teil, die einzelnen rows des Textareas anspreche, um sie ins array zu schreiben.
Ich hoffe ich hab mich verständlich ausgedrückt.
Gruß Kaldoran
Welchen Namen (name="" Attribut) hat Dein Textfeld und wie hast Du es abgeschickt (post, get, ...)?
Kaldoran
19.09.2007, 21:20:31
Der name der Textarea ist: linkliste
und übertragen wird das ganze mittels POST.
->RTFM (http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=185&group=32)
Kaldoran
19.09.2007, 21:50:43
Das löst mein Problem nicht. Hier wird ledeglich der Inhalt der ganzen Textarea in eine Variable geschrieben. Ich möchte jedoch es jedoch so haben, falls dies überhaupt möglich ist:
Den Inhalt von Zeile eins des Textareas in den ersten Teil des arrays
Den Inhalt von Zeile zwei des Textareas in den zweiten Teil des arrays...
so das ich am Ende z.B. mit echo $array[3]; den Inhalt der ursprünglich 4. Zeile des Textarea ausgeben kann.
Ok, dann war der RTFM Kommentar deplaziert.
Problem ist dass Du nicht weißt von welchem System das ganze kam (so weißt Du nicht ob ein Absatz aus "\r\n" (Windows), "\n" (Linux/Unix) oder "\r" (Apple) besteht). Du solltest den Inhalt daher durch nl2br() jagen (das macht aus allen Absätzen jeweils '<br />'). Problem ist dann dass der Benutzer das hätte eingeben können, daher solltest Du vorher den ursprünglichen Text durch htmlspecialchars jagen.
Wenn Du das alles gemacht hast, hast Du eine Zeichenkette, bei der alle Zeilenumbrüche durch '<br />' gekennzeichnet sind. Das kannst Du dann ganz einfach mit explode() auseinanderpflücken.
Falls Du eine der Verwendeten Funktionen nicht kennst kannst Du sie einfach hier in der Befehlsreferenz oder direkt bei php.net (http://php.net) nachsehen.
Nachtrag: Man kann eigentlich auch einfach explode() direkt anwenden, und einfach hintereinander auf \r\n dann \n und dann \r prüfen. Wenn es das erste nicht gibt, dann das zweite oder dritte.
... oder man verwendet preg_split() (http://de3.php.net/manual/de/function.preg-split.php) mit entsprechend definiertem Suchmuster ...
... oder man verwendet preg_split() (http://de3.php.net/manual/de/function.preg-split.php) mit entsprechend definiertem Suchmuster ...
... und wirft für nichts und wieder nichts die regex Maschine an.
... und wirft für nichts und wieder nichts die regex Maschine an.
Sorry, aber deinen Weg halte ich für ebenso wenig performant ... - da kann man die Engine ruhig mal "machen lassen". Man könnt's ja mal testen ...
Sorry, aber deinen Weg halte ich für ebenso wenig performant ... - da kann man die Engine ruhig mal "machen lassen". Man könnt's ja mal testen ...
Mein Vorschlag läuft aber asymtotisch in weniger Zeit, in linearer nämlich. ;)
Und wie ich in einem Nachtrag erwähnt habe gehts noch einen bedeutenden Tack einfacher und schneller.
Kaldoran
21.09.2007, 21:15:41
So ich habs nun hinbekommen.
Verwendet hab ich nur explode und str_split
nl2br() und die anderen funktionen die genannt wurden, hab ich nicht gebraucht.
vBulletin® v3.8.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.