Erweitertes ucfirst

tobee

Erfahrenes Mitglied
Ich bin gerade eine erweiterte ucfirst Funktion zu schreiben.
Und ich wollte euch frage wie es meine "Erweiterung" am besten lösen könnte.
PHP:
<?php
class com_string 
{
  function ucfirst($string)
  {
    $r = "";
    $e = explode(" ",$string);
    for ( $i = 0; $i < count($e); $i++ )  {
      $r .= ucfirst($e[$i]) . " ";
    }
    return $r;
  }
}
$com_string = new com_string;
?>

Zur zeit trennt er alle Worte bei einem Leerzeichen und macht das Wort groß.
Wie könnte ich am besten die Funktion erweitern, dass diese den String "rock'n'roll" in "Rock'N'Roll" oder "beats&more" in "Beats&More" umwandelt.
 
Wie wärs wenn du als Separator einfach jedes nicht alphanumerisches Zeichen verwendest, dass im String gefunden wird?
 
Mein Vorschlag:
PHP:
preg_replace('/\b[a-z]/e', 'strtoupper("\0")', $string)
 
Zurück