kostenloser Webspace werbefrei: lima-city


PHP Zeichenkette manipulieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Regechsen helfen da:
    [\s]+

    Matcht alle Whitespaces. Das kannst du dann via preg_replace nutzen und gegen ein einzelnes Leerzeichen austauschen.
  4. Autor dieses Themas

    mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    Danke ersteinmal für den Tip, aber dein Code bringt die Meldung:
    Warning: preg_replace(): Unknown modifier '+' in...

    Nach einigem Probieren hatte ich mit
    '/\s\s+/'
    erfolg.
  5. 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
    '/\s\s+/'
    erfolg.

    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
  6. h***********r

    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;
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!