• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Platzhalter bei replace

Status
Für weitere Antworten geschlossen.

Körnerbrötchen

Aktives Mitglied
Hey Leute,
ich wollte gerne ein Zeichen und jeweils das davor und das dahinter ersetzen bzw löschen. Jetzt bleibt nur die Frage: Wie?

Code:
<?php
$text = "Hallo:Leute";
echo ereg_replace(":", "", $text);
?>
Tja nur wie weiter? Hab da etliche Versuche unternommen und das PHP-Handbuch gewälzt... ähhh... geklickt, aber keine Ahnung.
Wäre super wenn ihr mir helfen könntet!

Gruß,
Körnerbrötchen
 
ich hab noch nicht verstanden was du haben möchtest.
Willst du den string am : zerschneiden, sodass du zwei strings hast, einer mit dem vor dem doppelpunkt und ein string mit dem danach?
PHP:
$string = "Hello:World";
$strings = explode(":",$string);
echo $strings[0]; //Gibt "Hallo" aus
echo $string[1]; //Gibt "World" aus
Oder willst du jeweils das zeichen vor und nach dem : haben?
PHP:
$string = "Hello:World";
$string2 = preg_replace("/.*(.):(.).*/i","$1$2",$string);
echo $string2; // Gibt "oW" aus
 
So wie ich das verstanden habe möchte er das was vor und das was hinter einem bestimmten Zeichen steht ändern oder löschen, also das ganze "Hello" und das ganze "World":
PHP:
<?php
  $string = 'Hello:World';
  $rep1 = preg_replace('/.*/', ':', $string);   //löschen (aber völlig sinnlos)
  $rep2 = preg_replace('/.*:.*/', 'Foo:Bar', $string);   //ändern
?>
 
Er möchte das Zeichen vor und das hinter dem Doppelpunkt löschen ;)


Ich habs nicht getestet, sollte aber so funktionieren:

PHP:
$erg = preg_replace("/(.*)(.){1,1}:(.){1,1}(.*)/", "$1$4", $text);
 
das hab ich doch bereits gepostet -.-
Oder willst du jeweils das zeichen vor und nach dem : haben?
PHP:
$string = "Hello:World";
$string2 = preg_replace("/.*(.):(.).*/i","$1$2",$string);
echo $string2; // Gibt "oW" aus

und was er nun wirklich will, sollte er dann selber entscheiden ;)
 
Commodore meint, das er das hinter und vor dem : löschen will.
und das hat er ja auch so gesagt ^^
i glaub er will nachher Halleute bzw. Hall$string1$string2eute
 
Hey Leute schonmal vielen Dank für alle eure Beiträge. Generell wollte ich den Doppelpunkt sowie das Zeichen davor und dahinter entfernen.
Das ganze Hallo und das ganze Leute zu entfernen scheint mir für die Lösung meines Problems aber auch nicht falsch zu sein.
Ich meld mich nach der Schule wieder, wenn ich die Codes ausprobiert habe. Danke!
 
ich hätte es auch mit explode und substr gelöst, regex halte ich hier für unpassend und gehe sogar davon aus, dass es langsamer ist, müsste man testen =)
 
Okay... vielen Dank dafür erstmal.
Kann mir jetzt noch jemand erklären wie man auf so einen Code kommt. Teile davon verstehe ich ja, allerdings will ich ja auch was dabei lernen... ;)
 
/(.*).:.(.*)/i

/ start des regex

(.*) die klammern speichern den inneren wert in $1

(.*) der punkt steht wür irgendein zeichen also z.b. "a" und das sternchen dahinter sagt das unendlich viele zeichen da sein können ^^

.:. das zeichen : steht hier als normales zeichen also für : und die pinkte davor und dahintetr für ein beliebiges zeichen also wie bei deinem hallo:welt für o:w

(.*) speichert wieder die übrig gebliebenen zeichen in eine variable aber diesmal in $2 weil $1 ja schon belegt ist.

/ ende des regex

i ignorier groß und kleinschreibung... in diesem fall aber irgendwie unnötig :-D

MFG
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben