2010-12-02 9 views
0

OK lassen Sie uns sagen, dass ich ein Textfeld und ich geben in diesem TextfeldPHP Textarea anhängen

dann, wenn ich Knopf drücken einreichen erhalte ich:

[Hello my name is] 
[Frank and I like] 
[to eat apples.] 

Sehen Sie, wie jede Zeile an die angehängt wird Beginnen und enden mit Klammern?

Gibt es eine Möglichkeit, dies auch in PHP zu tun?

+0

Wollen Sie damit sagen, dass Sie das Verhalten wollen? –

+0

Ich frage, ob es möglich ist, jede Zeile in einem Textfeld aufzuteilen und anzuhängen. – nn2

Antwort

6

Ja:

$output = '['.str_replace("\n", "]\n[", $input).']'; 

Ich bin mir nicht sicher, ob ein Textfeld \n oder \r\n sendet. Wenn es Letzteres ist, ändern Sie einfach \n zu \r\n in obigem.

3

Einfachste (und schnellste) Möglichkeit, dies zu tun, ist über eine Zeichenfolge zu ersetzen. Unter der Annahme einer „Nachricht“ Textarea:

$text = isset($_POST['message']) ? $_POST['message'] : ''; 
$text = str_replace("\n\r", "\n", $text); 
$text = str_replace("\r", "\n", $text); 
$text = "[" . str_replace("\n", "]\n[", $text) . "]"; 
echo $text; 
1

Wenn Sie Abstand erhalten, dann müssen Sie reguläre Ausdrücke verwenden:

$_POST['textarea'] = '['.preg_replace('!((?:\n|\r)+)!', "]$1[", trim($_POST['textarea'])).']'; 
+0

mein Rat (immer) ist, rohe Eingabedaten in ein bekanntes Format zu mappen, nennen Sie es vielleicht einen Standard für Ihre Anwendung. dann können Sie es entsprechend den Ausgabeanforderungen neu formatieren. – zanlok

+1

Nicht sicher, was dieser Kommentar bedeutet? Ich habe gerade eine Methode hinzugefügt, bei der mehrere Zeilenumbrüche zwischen Zeilen mit Text beibehalten werden, anstatt Leerzeilen mit [] auf ihnen zu belassen. Ich bin mir ziemlich sicher, dass die Ausgabe in beiden Fällen nicht mehr oder weniger ein "bekanntes Format" ist! str_replace ist viel schneller, wenn das alles nötig ist, stimme ich zu. –

+0

Ich meine, dass Software Datenintegrität einschließlich Newline-Struktur haben sollte. Preg nicht zu sagen, ist keine gute Idee, sondern nur den Grund für eine Datenbereinigung zu erklären. – zanlok