PHP Zeichenkette manipulieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgehen
austauschen
code
dank
dingern
erfolg
ersteinmal
helfen
jemand
kleinschreibung
manual
meldung
probieren
schlauch
setzen
situation
string
tip
url
zeichenkette
-
Ich stehe auf dem Schlauch und Google will mir nicht helfen.
Ich habe in einer Variablen eine Zeichenkette deren Länge je nach Situation variieren kann. Die ist so aufgebaut:
1. x Zeichen für ein beliebiges Wort oder eine Zahl, z.B.: grün oder 2017
2. x Leerzeichen
3. wie 1.
Diese Zeichenkette soll so gekürzt werden, dass in der Mitte nur noch genau 1 Leerzeichen steht.
Kennt hier jemand einen (möglichst eleganten) Weg? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Regechsen helfen da:
[\s]+
Matcht alle Whitespaces. Das kannst du dann via preg_replace nutzen und gegen ein einzelnes Leerzeichen austauschen. -
mein-wunschname schrieb:
Danke ersteinmal für den Tip, aber dein Code bringt die Meldung:
Warning: preg_replace(): Unknown modifier '+' in...
Die Regechse ist auch nicht zum 1:1 übernehmen gedacht. ;)
Da gehört der Ausdruck an sich dazu, eingeschlossen in den Delmiter und ggf. auch noch Modifikatoren für Groß/Kleinschreibung, etc.
Nach einigem Probieren hatte ich mit
erfolg.'/\s\s+/'
Damit ist jetzt "/" der Delimiter. Warum du die Whitespace-Gruppe zweimal drin hast weiß ich allerdings auch nicht. ;)
~\s+~
wäre z.B. auch eine Möglichkeit.
Siehe auch die Doku zu: https://secure.php.net/manual/de/regexp.reference.delimiters.php bzw. https://secure.php.net/manual/de/pcre.pattern.php
Beitrag zuletzt geändert: 13.10.2017 12:57:18 von muellerlukas -
Wenn wir davon ausgehen das dein String nur aus zwei Wörtern und dazwischen n Leerzeichen besteht kann man das auch mit den ganzen String replace Dingern lösen.
Als erstes kucken wir wie viele Leerzeichen da sind.
$zeichenkette = 'Deinezeichenkette'; $anz = substr_count($zeichenkette, " ");
Dann kucken wir wo das erste Leerzeichen ist.
$anf = strpos($zeichenkette, " ");
Nun setzen wir den String der Leerzeichen zusammen
$leerstring = substr($zeichenkette, $anf, $anz);
Jetzt schnibbeln wir den $leerstring aus $zeichenkette raus und geben dir den neuen.
$neuerstring = str_replace($leerstring, " ", $zeichenkette); echo $neuerstring;
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage