ScotlandPHP

ucfirst

(PHP 4, PHP 5, PHP 7)

ucfirstMet le premier caractère en majuscule

Description

string ucfirst ( string $str )

Retourne la chaîne str après avoir remplacé le premier caractère par sa majuscule, si le premier caractère est alphabétique.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

Liste de paramètres

str

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne après modification.

Exemples

Exemple #1 Exemple avec ucfirst()

<?php
$foo 
'bonjour tout le monde!';
$foo ucfirst($foo);             // Bonjour tout le monde!

$bar 'BONJOUR TOUT LE MONDE!';
$bar ucfirst($bar);             // BONJOUR TOUT LE MONDE!
$bar ucfirst(strtolower($bar)); // Bonjour tout le monde!
?>

Voir aussi

  • lcfirst() - Met le premier caractère en minuscule
  • strtolower() - Renvoie une chaîne en minuscules
  • strtoupper() - Renvoie une chaîne en majuscules
  • ucwords() - Met en majuscule la première lettre de tous les mots

add a note add a note

User Contributed Notes 33 notes

up
55
plemieux
12 years ago
Simple multi-bytes ucfirst():

<?php
function my_mb_ucfirst($str) {
   
$fc = mb_strtoupper(mb_substr($str, 0, 1));
    return
$fc.mb_substr($str, 1);
}
?>
up
24
mattalexxpub at gmail dot com
8 years ago
This is what I use for converting strings to sentence case:

<?php
function sentence_case($string) {
   
$sentences = preg_split('/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
   
$new_string = '';
    foreach (
$sentences as $key => $sentence) {
       
$new_string .= ($key & 1) == 0?
           
ucfirst(strtolower(trim($sentence))) :
           
$sentence.' ';
    }
    return
trim($new_string);
}

print
sentence_case('HMM. WOW! WHAT?');

// Outputs: "Hmm. Wow! What?"
?>
up
2
nospam at nospam dot com
8 months ago
Improved method of capitalizing first characters of sentences.
The first two manipulations (double spaces & all caps) are optional so can be removed without harm.

<?php
// return string with first letters of sentences capitalized
function ucsentence($str) {
  if (
$str) { // input
   
$str = preg_replace('/'.chr(32).chr(32).'+/', chr(32), $str); // recursively replaces all double spaces with a space
   
if (($x = substr($str, 0, 10)) && ($x == strtoupper($x))) $str = strtolower($str); // sample of first 10 chars is ALLCAPS so convert $str to lowercase; if always done then any proper capitals would be lost
   
$na = array('. ', '! ', '? '); // punctuation needles
   
foreach ($na as $n) { // each punctuation needle
     
if (strpos($str, $n) !== false) { // punctuation needle found
       
$sa = explode($n, $str); // split
       
foreach ($sa as $s) $ca[] = ucfirst($s); // capitalize
       
$str = implode($n, $ca); // replace $str with rebuilt version
       
unset($ca); //  clear for next loop
     
}
    }
    return
ucfirst(trim($str)); // capitalize first letter in case no punctuation needles found
 
}
}
?>

"heLLo EarthLing!" >> "HeLLo EarthLing!"
"I'M MOSTLY. caps!  " >> "I'm mostly. Caps!"
"ALLCAPS" >> "Allcaps"
"i haVe neST.ed punct,u.ation!  sp    A  c es.  and CAPs..  " >> "I haVe neST.ed punct,u.ation! Sp A c es. And CAPs.."
up
12
prokur.net - there is my email
9 years ago
I believe that mb_ucfirst will be soon added in PHP, but for now this could be useful
<?php

if (!function_exists('mb_ucfirst') && function_exists('mb_substr')) {
    function
mb_ucfirst($string) {
       
$string = mb_strtoupper(mb_substr($string, 0, 1)) . mb_substr($string, 1);
        return
$string;
    }
}

?>

it also check is mb support enabled or not
up
8
svetoslavm at gmail dot com
8 years ago
For some reason this worked for me.

Mac OS 10.5.1
PHP 5.2.6

<?php
  
/**
     * ucfirst UTF-8 aware function
     *
     * @param string $string
     * @return string
     * @see http://ca.php.net/ucfirst
     */
   
function my_ucfirst($string, $e ='utf-8') {
        if (
function_exists('mb_strtoupper') && function_exists('mb_substr') && !empty($string)) {
           
$string = mb_strtolower($string, $e);
           
$upper = mb_strtoupper($string, $e);
           
preg_match('#(.)#us', $upper, $matches);
           
$string = $matches[1] . mb_substr($string, 1, mb_strlen($string, $e), $e);
        } else {
           
$string = ucfirst($string);
        }
        return
$string;
    }
?>

Svetoslav Marinov
http://slavi.biz
up
2
wilfried dot loche at fr dot adp dot com
7 years ago
If someone looks for the equivalent on Oracle DB, here it is: INITCAP. Hope this helps!
up
2
octavius
8 years ago
For lithuanian text with utf-8 encoding I use two functions (thanks [mattalexxpub at gmail dot com] and Svetoslav Marinov)

<?php
function my_ucfirst($string, $e ='utf-8') {
    if (
function_exists('mb_strtoupper') && function_exists('mb_substr') && !empty($string)) {
       
$string = mb_strtolower($string, $e);
       
$upper = mb_strtoupper($string, $e);
           
preg_match('#(.)#us', $upper, $matches);
           
$string = $matches[1] . mb_substr($string, 1, mb_strlen($string, $e), $e);
    }
    else {
       
$string = ucfirst($string);
    }
    return
$string;
}

function
sentence_case($string) {
   
$sentences = preg_split('/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
   
$new_string = '';
    foreach (
$sentences as $key => $sentence) {
       
$new_string .= ($key & 1) == 0?
           
my_ucfirst(strtolower(trim($sentence))) :
           
$sentence.' '
    }
    return
trim($new_string);
}
?>
up
3
charliefortune
9 years ago
Here's a function to capitalize segments of a name, and put the rest into lower case. You can pass the characters you want to use as delimiters.

i.e. <?php echo nameize("john o'grady-smith"); ?>

returns John O'Grady-Smith

<?php

function nameize($str,$a_char = array("'","-"," ")){   
   
//$str contains the complete raw name string
    //$a_char is an array containing the characters we use as separators for capitalization. If you don't pass anything, there are three in there as default.
   
$string = strtolower($str);
    foreach (
$a_char as $temp){
       
$pos = strpos($string,$temp);
        if (
$pos){
           
//we are in the loop because we found one of the special characters in the array, so lets split it up into chunks and capitalize each one.
           
$mend = '';
           
$a_split = explode($temp,$string);
            foreach (
$a_split as $temp2){
               
//capitalize each portion of the string which was separated at a special character
               
$mend .= ucfirst($temp2).$temp;
                }
           
$string = substr($mend,0,-1);
            }   
        }
    return
ucfirst($string);
    }

?>
up
2
Quicker
6 years ago
if you want to ucfirst for utf8 try this one:

<?php
function ucfirst_utf8($stri){
if(
$stri{0}>="\xc3")
     return ((
$stri{1}>="\xa0")?
     (
$stri{0}.chr(ord($stri{1})-32)):
     (
$stri{0}.$stri{1})).substr($stri,2);
else return
ucfirst($stri);
}
?>

It is quick, not language (but utf8) dependend and does not use any mb-functions such as mb_ucfirst.
up
1
bkimble at ebaseweb dot com
14 years ago
Here is a handy function that makes the first letter of everything in a sentence upercase. I used it to deal with titles of events posted on my website ... I've added exceptions for uppercase words and lowercase words so roman numeral "IV" doesn't get printed as "iv" and words like "a" and "the" and "of" stay lowercase.

function RemoveShouting($string)
{
$lower_exceptions = array(
        "to" => "1", "a" => "1", "the" => "1", "of" => "1"
);
                                     
$higher_exceptions = array(
        "I" => "1", "II" => "1", "III" => "1", "IV" => "1",
        "V" => "1", "VI" => "1", "VII" => "1", "VIII" => "1",
        "XI" => "1", "X" => "1"
);

$words = split(" ", $string);
$newwords = array();

foreach ($words as $word)
{
        if (!$higher_exceptions[$word])
                $word = strtolower($word);
        if (!$lower_exceptions[$word])
                $word = ucfirst($word);
         array_push($newwords, $word);

}
       
return join(" ", $newwords); 
}
up
1
Ken Kehler
10 years ago
@ zee: this should solve your !, ?, and any punctuations you want to add. It can probably be cleaned up a bit.

<?php

function sentence_cap($impexp, $sentence_split) {
   
$textbad=explode($impexp, $sentence_split) {br />    &n7kDbsp;       $string
$words = split(" ",p;
ault">0$n&="date" title="2007-03-14 12lt">$stri>1);
            }   
        }
    return
ucfirst( );
ult">$impexp
,     />        $str =explode    re;      ass="keyword">((ucfirst($sentence_an>$strstron>{($sentence_an><?php

$str.">"'"
strpos
    re;  n>($sentence_an><?php

$str!">"'"
strpos
    re;  n>($sentence_an><?php

$str?">"'"
strpos    re;  nnbsp;ss the characters you want to use     respan>trim($string);
  7638dend and does not use any mb-functions s7638den3895&page=function.ucfirst&vote=638d/div>
Ken Kehler}
8 yeablock1", westras=tlea; >nce uperca8 yeablockn class="html"> @ zee: this should solve your !, ?, and any punctuations you want to add. It can probably be cleaned up a bit.

<?php

function sentence_cap($impexp, $sentence_split) {
   
$textbad=explode($impexp, $sentence_split) {br />    &n7kDbsp;     &nbss="default">$sentencs="default">$string
$words = split(" ",p;
ault">0$n&="date" title="2007-03-14 12lt">$sbe cleaned up a befault.
   
$string (         }   
        }
    return
ucfirst( );
ult">$impexp
,     />        $str =explode    re;      ass="keyword">((ucfirst($sentence_an>$strstron>{($sentence_an><?php

$str.">"'"
strpos
    re;  n>($sentence_an><?php

$str!">"'"
strpos
    re;  n>($sentence_an><?php

$str?">"'"
strpos
    re;  nnbsp;ss the characters you want to use     respan>trim($string);
  &2155> "I haVe neST.ed punct,u.ation! Sp A&2155>907&page=function.ucfirst&vote=u2155&v>
2 7-08-23lasser">char1nmonthrr$: class="html"> @ zee: this should solve your !, ?, and any punctuations you want to add. It can probably be cleaned up a ucd">=     $string     return s="default">$impexp, < tspan>$string) {
   
$sentences ^\.\!\?;]+[\.\!\?;"an class="keyword">=
preg_split$string = $mend$string, PREG_Sclass="default">1, -"-"$e),$stran>;
 an class="default">$e
n>$string (
ault">0$e                $mend (strtolower( pan> );
ult">$impexp
, <>$e);
) { replaan>($sentences = preg_snces = preg_split= , <>$e);
) { replaan/>   
$sentences = $string (($upper ($string )):
    ]);}class="default">preg_split=
((strtolow= ucfirst($ei stought: "hey, w thknow\'s. maybidi am right."nbsp;       (I stought: "Hey, w thknow's. MaybidI am right."s="default">$string);
  4137i.biz" rel="nofollow" target="_blank">ht4137i.b907&page=function.ucfirst&vote=4137iv>
ess"57% )763" title="58% like this..."> 2 char13n Kehlerneed m(){an>9 yea,text"
Here'22">ke/div&Le48">05:maxNan>< add. It com3ndintextboxd"fsig">$posastspan>){
){ecoords tyword">)doulle-barrel>r up tsprs ag"mc",s/daetitrs/strst/strbiv><:maxoed correctly.ucfirst); aiv { replaan star surpss="srd">){e>//$strars ago bigger< ier&erotitcl eel f_chaodein><:m m/s!"
ss 2 ionsentes />&er)w tl; pointyword"te=) :Ducfirst$a; xample.!"
ult">tr"1",
@ zee: this should solve your !, ?, andtions[$word]) any punctuations you want to add. It can probably be cleaned up a 05:maxNan>(strtolownan>(= ?, andtions[$word])/>
(($string;ur !, ?, andtions[;   $wordefault"_exists$sentence_an>$string ($sentence_an>($sentences "'"$str -">"'"strpos(trim(,ass="default">$e);
    "/^[a-z]{2,}$/i>"'"
strpos(trim&e ass="defaurd]) upte">tr       efault"_exists($a_split $a_split strposs_/>&nbsspan class="default">$sentence_an>) {
   
strpos(trim$a_split $str $sentence_an>strpos$sentencsolvnbstrposcss=spannr />&="date" title="2007-03-14 12lt">$stri>1s_/>&nb(strpos($a_split &="date" title="2007-03-14 12lt">$stri>1s_/>&nb($string (strpostran>$key $sentenc||_an>strposs_/>&nb($string ($a_split strposs_/>&nb($string ($string bsp;       $upper s_/>&nb($string ($string         br /> );
ult">$impexpstrposs_/>&nb($string (ypan>&="date" title="2007-03-14 12lt">$stri>1s_/>&nb($string (        br /> )          $wordefault";
ult">$impexp$a_split
strposbsp;           }
    />       
strposs_/>&nb($a_split strposbsp;           }
    >) { replaan>($sentences "'"$strspan>= array(strpos(trim$a; xtraeinst etml">$a_split $stri    $string ( )       efault";
ult">$efault";
t
($string);
  &15039gt; "I haVe neST.ed punct,u.ation! Sp A&15039gt907&page=function.ucfirst&vote=u15039v>
4stron6 06:34">char3n Kehlerral "r />
); &nbal "r          &$ult">Wo/>&nb"den class_hing($aPp ts[0],MB_CASE_TITLE,"UTF-8"r          &unset($aPp ts[0]);ur !, ?, andtions[;   $worddefault"ass="ke$ult">Wo/>. &n. />&nbs; &nbaaPp ts>u="default">$string);
  &1380i.biz" rel="nofollow" target="_blank">ht&1380i.b907&page=function.ucfirst&vote=u1380iv>
3-12str 10:32">char3n Kehlertra="keyworm( @ zee: this should solve your !, ?, and any punctuations you want topublic< uptic< add. It ypan>&="date" title="2007-03-14 12lt">$stri>1= ?, ands="default">$impexp, $e, "dedefault.
   
$string = $string $string) {
   
$sentences = preg_splitfunction $mend$string, -) {br />    &n7kDbsp; &ant ppan>$stran>;
">$sr
a/>
ault">0$e, "dedefau      $upper "dedri{1$sr$str>)):
    span>$str$mend"dedri{1$sr$str$mend,0, $e, an> replaan>($senteault">1$sr$str=asant ass="keyword">= preg_splitfunction ucfirs $worddefault"ass="keass="default">preg_splitfunction ucfirst($string);
  &n7700 }

2st2-27 04:41">char5>Quicker @ zee: this should solve your !, ?class="keyword">function     $string = ss="default">$impexp, $string) {
   
$sentences "'"function $string $string, -preg_split    ,0, an> replaan>($sentences "'"$strİ>"'"&="date" title="2007-pan class="default">$string )):
    ])n_an>$strUTF-8"ss="keyword">, -$impexp, &="date" title="2007-pan class="default">$string ($e{&="date" title="2007-03-14 12lt">$stri>1= /span>$strinpan>{trimfunction     $string = &nbtrimfunrd">($string);
  &n543;  
return join(" ", $newwor&n543; &907&page=function.ucfirst&vote=up543;v>
Quicker @ zee: this should solve your !, "des pornal_en"dan class="keyword">= $sentences , -(= $sentences , - ilkbuyuk>    $senteyword">,     re;?, ands="default">$impexp, $sentence_an>($sentences = array($strı>"'"strpos    re;  ult">$impexp, $sentence_an>    $string     reclass="default">preg_snces = $impexp$impexp$string     repan class="default">$string )):
    ]an>"'"$string $sentence_an>$strİ>"'"$stri{1    reclass="default">preg_sult">$str$mend,$string $sentence_an>    1    reclass="default">preg_sult">$strMB_CASE_TITLE"'"$strUTF-8"ss="keyword">, -$impexp$impexppreg_split(strtolow/r_pan>ss="keyword">, - asant pr />    $string     re;?, ands="default">$impexp, $string) {
   
"'"strpos
    re;  ult">$impexp$string &nb(,    re;      />
ault">0$sentence_an>$strpan>{
),$sentencASpan>strpos(      &44">ault">0$sentencbr />    &nbs;  "">"'"$sn> ilkbuyuk>    $senteyword">, (      &?, andtions[;   $worddefault"ass="keass="default">preg_split(strtolow/r_pan>ss="keyword">, -ucfirs $worddefault"span         ass="keass="default">preg_split    $senteyword">,     re;ucfirst($sentence_an>$strıişllşlsdgpan>{ asant pr />    $string , -funrd">($string);
  97277  
return join(" ", $newwor97277 &907&page=function.ucfirst&vote=97277v>
0-s4-11 07:0r">char7>Quicker) @ zee: this should solve yo nnbsp;?class="keyword">function ($string = nnbsp;{ snbsp;ult">$impexppreg_split) { replaan>($sentences = preg_snces = preg_splitfunction funrd">($string);
  9258dend and does not use any mb-functions s9258den907&page=function.ucfirst&vote=9258dv>
char8>Quicker @ zee: this should solve yo nnbsp;nbsp;   &44">ault">0&="date" title="2007-03-14 12lt">$stri>1= { snbsp;ult">$impexpault">0bsp;           }
    n cl {
   
, -$strWin
"'"function &nbtrim$impexpault">0bsp;           }
    ypan>&="date" title="2007-03-14 12lt">$stri>1
class="keyword">function $impexpault">0
bsp;           }
    n cl {
   
"'", -function trim Hetf-8 snbsp;ult">$impexp$impexpault">0preg_split class="keyword">function $impexpfunrd">($string);
  81018end and does not use any mb-functions s81018en907&page=function.ucfirst&vote=81018v>
Quicker)lyears agf you waaes />&eb"delyears atpan penrs agm( @ zee: this should solve your !, ?class="keyword">function &="date" title="2007-03-14 12lt">$stri>1=     nullnbsp; }
    re;?, ands="default">$iifn class="default">$string $key     re;_an>    "des pornal_en"dan class="keyword">= preg_split    $string {1= preg_sult">$str$mend    re;n_an>    re;/span>$s"dedri{1= &="date" title="2007-03-14 12lt">$stri>1=     re;n_an>    re;ucfirstclass="keyword">funrd">($string);
  7218;  
return join(" ", $newwor7218; &907&page=function.ucfirst&vote=7218;v>
char10>Quicker= ) ('.',d
p(
a/>
)}ult">$efault";
n>&nbs ('.',d$string);
  63799gt; "I haVe neST.ed punct,u.ation! Sp A63799gt907&page=function.ucfirst&vote=63799v>
char11>Quicker)belt.agf you w oHco <"V32 years agotr (wt3:4text" H"co1nst lled): class="html"> @ zee: this should solve your !, ?class="keyword">function pannr />&="date" title="2007-03-14 12lt">$stri>1= preg_snces = d])$sts="strin'mdedefau lass="keyword">= a/>
ault">0    "dedefau      $upper "dedri{1= preg_sult">$str$mend    re;n_an>function preg_splitfunction $s"dedri{1= &="date" title="2007-03-14 12lt">$stri>1= function ucfirs $worddefault"span {nbnbsp;        3-14 12lt">$stri>1    ytf8_dec">) {
   
function &bnbsp;        3-14 12lt">$stri>1< class="keyword">function
$string )):
    ]an;3-14 12lt">$stri>1
{1= $string )):
    ],_exceptions = array(
      &44">ault">0
uvwxyz>"'"
ault">0"'"
ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"$stri    function
&bnbsp;    }span c>ucfirstclass="keyword">funrd">($string);
  62371gt; "I haVe neST.ed punct,u.ation! Sp A62371gt907&page=function.ucfirst&vote=62371v>
char11>Quicker xed if you wago @ zee: this should solve your !, ?, and?class="keyword">function &="date" title="2007-03-14 12lt">$stri>1= />$stri>1< class="keyword">function $string )):
    ]an;3-14 12lt">$stri>1{1= $stri>1uvwxyz>"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"$stri>1"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"preg_split= ucfirst($string);
  60620 }

char11>Quickera; n"dan coHco very 0 &n&eb"d if you wa(despitco1ni_set('rd">(a; topyword">)script). Tsearis"/divexa/>&ebthatrsorksain my applica="key(PHP 4.3): class="html"> @ zee: this should solve your !, ?class="keyword">function pannr />&="date" title="2007-03-14 12lt">$stri>1= = preg_snces = ass="default">preg_split    "dedefau      $upper "dedri{1= preg_sult">$str$mend    re;n_an>function preg_splitfunction $s"dedri{1= &="date" title="2007-03-14 12lt">$stri>1= function ucfirstclass="keyword">funrd">($string);
  5407i.biz" rel="nofollow" target="_blank">ht5407i.b907&page=function.ucfirst&vote=5407iv>
char12>Quicker&eb"datoHcoger all"/div'bad )ncho. Yxt" ould/spanspa ireplaan but 0 &cebthat'so1nst lledpIt PHP5pItly,)nchov> n plaans capi390sars aguault">r) wt3:4titrthinksaa capi390 should/be plaand,3" ta newrcfirst= nn class="html"> @ zee: this should solve your !, ?class="keyword">function     $string     ren/> ass="default">preg_split    preg_sf8 try th"ysql_queryr />    $st;  "SELECT "'"$string     preg_sf8 try th"ysql_fetch_/>&nb(,   
$string     repass="default">preg_sf8 try thsn> replaan>($senteault">1    $string     ]n>strpos    $string     ]n>strposdefault.
   
$string     ren>&bnbsp;        3-14 12lt">$stri>1    preg_sf8 try thword">) {
    "'"strpos    re;  ult">$impexp$senteyword">,     preg_sf8 try th>)):
    ;ass="default">$senteyword">,     $senteyword">, css=sr />    $string     $senteyword">,    
$stri>1    $string     preg_sf8 try thfault">pannr />&="date" title="2007-03-14 12lt">$stri>1    $string     $impexpucfirs $worddefault"
$string     repass="default">preg_sf8 try th />&nbs {
    "'"strpos<     ucfirs $worddefault"ass="keass="default">preg_split    reucfirstclass="keyword">funrd">($string);
  5088dend and does not use any mb-functions s5088den907&page=function.ucfirst&vote=5088dv>
char12>Quicker)lastb"datow3:4tspoiled,3h3:4bis"/div> xed one: class="html"> @ zee: this should solve your !, ?, and?class="keyword">function &="date" title="2007-03-14 12lt">$stri>1= />$stri>1< class="keyword">function $string )):
    ]an;3-14 12lt">$stri>1{1= ault">0uvwxyz>"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"ault">0"'"preg_split= ucfirst( Henbspcase, uault">r) doekeItlyachange: a-z to: A-Z/span>$string);
  4343;  
return join(" ", $newwor4343; &907&page=function.ucfirst&vote=4343;v>
char13>Quicker&bnbsp;var_dump($ )  nnbsp;$ d=neyears ("owen">&bnbsp;var_dump($ )  nnbsp;Resry sago$string);
  110261gt; "I haVe neST.ed punct,u.ation! Sp A110261gt907&page=function.ucfirst&vote=110261v>
2- 0-s5 04:14">char5>Quicker @ zee: this should solve yo nnbsp;"des pornal_en"dan class="keyword">= $sentences , -ault">0trima; if you wa nnbsp; ="html"class="keyword">function pannr />&="date" title="2007-03-14 12lt">$stri>1= $impexp$stri>1) { match_/llnbsp; }
    relass="default">$sentences "'"function function preg_split$upper narn class="keyword">function $string $string )):
    ];/span>$snarn class="keyword">function $string $string )):
    ]; snbsp;ult">$impexpfunrd">(
$string);
  7669dend and does not use any mb-functions s7669den907&page=function.ucfirst&vote=7669dv>