Enter (Sonderzeichen) einfügen
Heiko
- php
Hallo Gemeinde,
ich möchte gerne in einem <textarea> ein Sonderzeichen einfügen.
Ich speichere eine Torfolge mit verschiedenen Inhalten und gebe als Trennzeichen die Raute '#' ein.
Sieht in etwa so aus:
0:1|5|Starke|(Eigentor)#0:2|23|Montabell|
Es gibt also 3 Trenner (Min, Torschütze und Bemerkung wenn Eigentor - 11er usw) sowie am Ende jeder Torinformation ein #.
Wenn ich den Datensatz aber ändern muss (wegen Schreibfehler), so muss ich jedesmal die # entfernen und seperat ein Enter einfügen.
$tofo = $_POST['eingabe_tofo'];
$erse = '/\r/';
$such = '#';
$tore = preg_replace($such, $erse, $tofo);
führt leider zu einem Fehler.
Könnt Ihr mir helfen?
LG Heiko
Hi,
führt leider zu einem Fehler.
den Du uns aus welchem Grund verheimlichst?
Cheatah
Hi,
führt leider zu einem Fehler.
den Du uns aus welchem Grund verheimlichst?
Cheatah
Ups:
Warning: preg_replace() [function.preg-replace]: No ending delimiter '#' found in /var/www/........./terminverwaltung.php on line 120
Zeile 120:
$tore = preg_replace($such, $erse, $tofo);
LG Heiko
Hi,
Warning: preg_replace() [function.preg-replace]: No ending delimiter '#' found in /var/www/........./terminverwaltung.php on line 120
tja, '#' ist halt keine gültige Regular Expression. Bist Du übrigens sicher, dass Du die gefundenen Trennzeichen durch einen Slash, einen Macintosh-Umbruch und noch einen Slash ersetzen möchtest?
Cheatah
Hi Cheatah,
Also ich möchte, die Raute (hinter jedem 'Tor') weg haben und eventuell das nächste in einer neuen Zeile.
Der Grund:
Wenn ich ein Datensatz bearbeiten muß speichert er ## ab, wenn ich es nicht per Hand entferne was bei 8 oder mehr Toren Zeitaufwändig ist.
Ausgabe soll so dann sein:
0:1|5|Starke|(Eigentor)
0:2|23|Montabell||
......
......
6:3|81|Carolus|(Eigentor)
LG Heiko
Hi,
Also ich möchte, die Raute (hinter jedem 'Tor') weg haben und eventuell das nächste in einer neuen Zeile.
Erlaubnis erteilt. Genügend Hinweise dazu, was Du in Deinen bisherigen Versuchen falsch gemacht hast, hast Du bekommen, solltest es also jetzt entweder lösen oder zumindest ein gutes Stück weiter kommen.
Cheatah
Hallo,
$tore = preg_replace($such, $erse, $tofo);
Warum nutzt Du nicht einfach "str_replace"?
Grüße Basti
Hi Basti,
gute Idee aber dann erscheint die Ausgabe in der TEXTAREA
so:
0:1|5|Starke|(Eigentor)/\r/0:2|23|Montabell .......
also es wird kein "ENTER" eingefügt".
LG Heiko
Hallo Heiko,
0:1|5|Starke|(Eigentor)/\r/0:2|23|Montabell .......
also es wird kein "ENTER" eingefügt".
kein Wunder, wenn du die Zeichenfolge "/\r/" einfügst.
Wozu die Slashes "/"? Als Begrenzer für eine RegEx sind sie üblich, aber die Stringfunktionen arbeiten mit den reinen Nutzdaten.
Und was bezeichnest du als "ENTER"? Zeilenumbrüche werden auf unterschiedlichen Systemen auch mit unterschiedlichen Steuerzeichen oder Kombinationen dargestellt, das ist ein uraltes Thema ("\n" in Unix-artigen Umgebungen, "\r" in alten Mac-Systemen, "\r\n" auf DOS/Windows).
Im HTML-Umfeld gilt üblicherweise "\n" als Zeilenumbruch.
So long,
Martin
Hi,
$tore = preg_replace($such, $erse, $tofo)
parameter: regEx, Ersetzung, String
'#' ist keine regEx.
Ansonsten, wie bereits erwähnt, würde ich hier '\n' einsetzen.
Gruesse, Joachim