PHP Trennzeichen prüfen und löschen

Schumiel

Lieutenant
Registriert
Jan. 2010
Beiträge
846
Hallo,

und zwar habe ich einen String, indem ausgewählte Zahlen gelöscht werden sollen, das Trennzeichen dann natürlich mit:
z.B. "1/2/3/4/8/10/23/34"

Bisher mache ich das wie folgt, bei einer Zahl mit 3:

PHP:
str_replace('/3/',"/",$string )

Nur, wie mache ich das, wenn die 1 oder 34 gelöscht werden soll? Ich finde da kein "Packan". Habe zwar mit substr und strpos etwas probiert, aber da wird einem zu viel gelöscht, zumal die Zahlen auch willkürlich in anderer Reihenfolge stehen könnten.
 
Ich würde ein explode vorschlagen auf das Trennzeichen. Dann kannst du gewünschte Elemente löschen und am Ende mit implode wieder zusammenfügen.
 
Du kannst ja auch nach mehr als einem Zeichen suchen.

PHP:
$suche = array("/3/", "/1/");
$ergebnis = str_replace($suche, "/", $string);

Aber ich bin mir auch nicht ganz sicher ob das das praktischste is kommt drauf an was du da genau vorhast.
 
Ganz einfach. Vorher vorn auch ein "/" anhängen und nur jeweils "/(Zahl)" löschen
Eigentlich unlogisch. Beim Löschen von "/3" würde ja aus der Liste:
"1/2/3/4/8/10/23/34" die Liste "1/2/4/8/10/234" werden, was wohl nicht beabsichtigt ist.
Also besser vorne und hinten ein "/" anhängen, weiterhin "/(Zahl)/" zu "/" ändern,
und dann alle führenden und abschließenden "/" des Strings wieder entfernen.
 
Zuletzt bearbeitet: (präzisiert)
Siehe r0b0ts Antwort. Das gleiche Problem hast du dann auch noch mit der ersten und letzten Zahl im String (x/ und /x)

Fehlerfreie Funktionalität > Performance
 
Was spricht gegen diese Lösung?
Code:
([0-9]+.)|\w+

Damit sollten theo. alle Zahlen gruppiert werden, unabhängig von mit / ohne Slash am Ende. Eines am Anfang sollte ignoriert werden. Einfach mal auf http://www.regexr.com/ testen. ;)
 
Zurück
Oben