GELÖST preg_replace | erstes zeichen nach leerz. strtoupper

  • hallo :)


    ich habe versucht in einem string das erste zeichen nach einem leerzeichen zu finden
    wenn ich folgende methode anwende wird das erste zeichen nach dem leerzeichen und das leerzeichen gelöscht =)


    variante1

    Code
    <span class="syntaxdefault">$name</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">preg_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"/(\040)(.)/"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $name</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>


    soweit ich es versanden habe symbolisieren die bereiche in den runden klammern (\040)(.) referenzbereiche die in $replacement wieder angesprochen werden können


    variante2

    Code
    <span class="syntaxdefault">$name</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">preg_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"/(\040)(.)/"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> strtoupper</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"\\2"</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> $name</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>


    mit dieser variante werden die zeichen nach dem leerzeichen angezeigt, jedoch unverändert , das leerzeichen ist weg
    und wenn ich


    variante3

    Code
    <span class="syntaxdefault">$name</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">preg_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"/(\040)(.)/"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> strtoupper</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"w"</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> $name</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> </span>


    verwende, werden die ersten zeichen nach dem leerzeichen und das leerzeichen durch 'W' ersetzt


    so... variante 1 und 3 verwundern mich nicht , jedoch bin ich entäuscht das die refernzierung in variante 2 nicht funktioniert :(


    vielleicht habt ihr einen gedankenanstoss


    gruß
    peter



    ------------------------------------------
    EDIT
    betreff als gelöst markiert

  • Nur mal gerade so in den Raum geworfen.. text-transform: capitalize;.. sollte es sich hierbei um Usereingaben handeln ^^


    Andernfalls schaue ich mir das sonst gleich nahc dem Frühstück noch mal an :D

  • wird in einer methode verwendet


    es wird ihr der titel für ein input feld übergeben


    mit preg_replace möchte ich nun alle leerzeichen löschen und das erste zeichen nach dem leerzeichen soll groß werden
    um eine höckerschrift für das input attribut name="" zu ereichen


    Code
    Mein erstes Input Feld funktioniert


    becomes


    Code
    MeinErstesInputFeldFunktioniert


    umlaute und diverse zeichen werden nat. auch geprüft ;)


    gruß
    peter

  • Einfach ucwords nutzen:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br /><br />  $a </span><span class="syntaxkeyword">= </span><span class="syntaxstring">'Mein erstes Input Feld funktioniert'</span><span class="syntaxkeyword">;<br /><br />  </span><span class="syntaxdefault">$a </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">ucwords</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">);<br /><br />  </span><span class="syntaxdefault">$a </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">str_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">, </span><span class="syntaxstring">''</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">);<br /><br />  print </span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">?><br /></span></span>
  • Zitat von &quot;Peter1978&quot;


    sollte öfter die funktions referenz durchstöbern


    Das kenne ich noch von meinem Beginn, damals habe ich immer alles versucht um irgendwelche Sachen zu lösen, klappt dann irgendwann mit 250 Zeilen Kot (ja das ist hier die richtige Bezeichnung :D), und heute denke ich mir... "Oh oh, die Funktion da benutzen und ich spare mir 249 Zeilen!" ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!