Red_Wraith
28-01-2006, 18:16
Ich bin ein totaler Anfänger, was PHP betrifft, und bin dabei mein erstes Projekt zu schreiben.
Kann man irgendwie alles außer bestimmte Zeichen aus einem String entfernen? Also wenn der String z.B. "HALLO" lautet und er alles außer die Zeichen des Strings "AO" entfernen soll, sollte der neue String "HLL" lauten.
Kann mir da jemand weiterhelfen?
ghostgambler
28-01-2006, 18:38
preg_replace('#[AO]+#', '', 'HALLO');
ggf. hinter das letzte # noch ein i für caseless ... sollte richtig sein *gerade keine Lust hat zu testen*
oder was ich gerade noch gefunden habe
str_replace(array('A', 'O'), '', 'HALLO')
oder str_ireplace für caseless und ggf. als zweiten Parameter auch ein Array mit Leerstring, hab ich auch gerade keine Lust auszuprobieren ob er für search ein Array und dann für replace nur einen String akzeptiert (diese Möglichkeit sollte schneller sein als preg_replace, auch wenn sie etwas länger aussieht)
Red_Wraith
28-01-2006, 18:58
Ah, ich habe mich vertan mit meinem Beispiel. Ich meinte eigentlich: Wenn der String z.B. "HALLO" lautet und er alles außer den Zeichen des Strings "HL" entfernen soll, sollte der neue String "HLL" lauten.
Danke schon mal. Tut mir Leid, dass ich meine Frage falsch gestellt habe.
ghostgambler
28-01-2006, 18:59
es wird dir ja wohl möglich sein meine Lösungen zu verstehen und sie dementsprechend, passend auf deinen Wunsch, zu ändern?!
Red_Wraith
28-01-2006, 19:01
Ja, aber ich möchte nicht alle möglichen Zeichen bis auf die 2, die nicht entfernt werden sollen, hinschreiben. Das wären dann nämlich 253 Zeichen. Gibt es keine andere Möglichkeit?
ghostgambler
28-01-2006, 19:23
preg_replace('#[^HL]+#', '', 'HALLO');
$result = preg_replace('/[^hl]/', '', $subject);
wobei das ^ für NOT steht:
wenn die Zeichen nicht h oder l sind, dann ersetze durch nichts (=lösche)
Red_Wraith
28-01-2006, 20:16
Vielen Dank für eure Hilfe! Das Problem ist also jetzt gelöst.