ScotlandPHP

count_chars

(PHP 4, PHP 5, PHP 7)

count_charsRetourne des statistiques sur les caractères utilisés dans une chaîne

Description

mixed count_chars ( string $string [, int $mode = 0 ] )

count_chars() compte le nombre d'occurrences de tous les octets présents dans la chaîne string et retourne différentes statistiques.

Liste de paramètres

string

La chaîne analysée.

mode

Voir les valeurs retournées.

Valeurs de retour

Suivant la valeur de mode, count_chars() retourne les informations suivantes :

  • 0 : un tableau avec l'octet en index, et la fréquence correspondante pour chaque octet.
  • 1 : identique à 0, mais seules les fréquences supérieures à zéro sont listées.
  • 2 : identique à 0, mais seules les fréquences nulles sont listées.
  • 3 : une chaîne contenant tous les octets utilisés est retournée.
  • 4 : une chaîne contenant tous les octets non utilisés est retournée.

Exemples

Exemple #1 Exemple avec count_chars()

<?php
$data 
"Deux D et un F.";

foreach (
count_chars($data1) as $i => $val) {
   echo 
"Il y a $val occurence(s) de \"" chr($i) , "\" dans la phrase.\n";
}
?>

L'exemple ci-dessus va afficher :

Il y a 4 occurrence(s) de " " dans la phrase.
Il y a 1 occurrence(s) de "." dans la phrase.
Il y a 2 occurrence(s) de "D" dans la phrase.
Il y a 1 occurrence(s) de "F" dans la phrase.
Il y a 2 occurrence(s) de "e" dans la phrase.
Il y a 1 occurrence(s) de "n" dans la phrase.
Il y a 1 occurrence(s) de "t" dans la phrase.
Il y a 2 occurrence(s) de "u" dans la phrase.
Il y a 1 occurrence(s) de "x" dans la phrase.

Voir aussi

  • strpos() - Cherche la position de la première occurrence dans une chaîne
  • substr_count() - Compte le nombre d'occurrences de segments dans une chaîne

add a note add a note

User Contributed Notes 10 notes

up
14
marcus33cz
5 years ago
If you have problems using count_chars with a multibyte string, you can change the page encoding. Alternatively, you can also use this mb_count_chars version of the function. Basically it is mode "1" of the original function.

<?php
/**
* Counts character occurences in a multibyte string
* @param string $input UTF-8 data
* @return array associative array of characters.
*/
function mb_count_chars($input) {
   
$l = mb_strlen($input, 'UTF-8');
   
$unique = array();
    for(
$i = 0; $i < $l; $i++) {
       
$char = mb_substr($input, $i, 1, 'UTF-8');
        if(!
array_key_exists($char, $unique))
           
$unique[$char] = 0;
       
$unique[$char]++;
    }
    return
$unique;
}

$input = "Let's try some Greek letters: αααααΕεΙιΜμΨψ, Russian: ЙЙЫЫЩН, Czech: ěščřžýáíé";
print_r( mb_count_chars($input) );
//returns: Array ( [L] => 1 ray => 1 7 at=> 1 .

prit;
iv>
up
down
14
marAnonymousm> If nt_chars ver(
<?php
function mb_count_chars= $inping , $unie "1"pan>= 0; <
       
$uniults">"pan>= $unay_keyfilspan>; $inspan>; $un256pan>; $unspan>; <        for($i = 0; $unisiz1"pan>= 0($inping , <)/span>$i < $l; $i++) {
       
$char = mb_substr= $inping , $unispan>, 1,
        if(!< span>$i len($inpr]++) 1,                 if(r />    retsp;       forsp;   $char "1"pan>= 0=pan>($inpr]++)r />        if(!< span>$i ar "1"pan>= < 0= < ;vot ;votspan>$char "1"pan>= <; 0,         $uniults">pan>[$char[    }    retr />    ret />    retswitch span>$i am[        1, <:tpan>//ret s"> an 0 bunchaly e st-ues"> th a mulfrences y grea occthclazero arestéePrr />funcach&nb span>$i aults">"pan>= $i awor"pan>= 1pan>,         $i aues">"pan>= 0; <
    $i aults">pan>[$chaworodn>[        if(sp;       if(r />    retsp;       retsp;           if(c Extpan>1, <:tpan>//ret s"> an 0 bunchaly e st-ues"> th a mulfrences y encao topzero arestéePrr />funcach&nb span>$i aults">"pan>= $i awor"pan>= 1pan>,         $i aues">"pan>= 1; <
    $i aults">pan>[$chaworodn>[        if(sp;       if(r />    retsp;       retsp;           if(c Extpan>1, <:tpan>//ret aring $intentain and ll que $chabuildSng $inpan>= "Le'span>);        if(sp;   &nbcach&nb span>$i aults">"pan>= $i awor"pan>=
1pan>,         $i aues">"pan>= 1; <
    $chabuildSng $inpan>= <./span>0($inpworodn>[        if(sp;       if(r />    retsp;       retsp;   $unibuildSng $ipan>);        if(c Extpan>1, <:tpan>//ret aring $intentain and ll note thdsracters.$chabuildSng $inpan>= "Le'span>);        if(sp;   &nbcach&nb span>$i aults">"pan>= $i awor"pan>=
1pan>,         $i aues">"pan>= 0; <
    $chabuildSng $inpan>= <./span>0($inpworodn>[        if(sp;       if(r />    retsp;       retsp;   $unibuildSng $ipan>);    &nbr />    ret />    retpan>//ret nge thewor"espac..r />funcach&nb span>$i aults">"pan>= $i awor"pan>= 1pan>,     $chaults">pan>[$ch($inpworodn>[0pan>,         if(unsetspan>$i aults">pan>[$chaworodn>[    &nbr />    ret />    return $uniults">pan>[    &nbr />$unt;
iv>
down
14
marpzb at novell dotec/dd> If s helction
<?php
function mb_is7bi>pan>[$inping , <)br />    //ret emptyring $isnares7-bit arfin />fun!< sspan>arrlen($inping , <)bbr />    $une; pan>);    &nbr />    ret an>//ret nt_chars)erp/>    $uniing"pan>= 0($inp= 1,
   
//ret Ckboxc(fun!< sspan>arr">=pan>($inp= $chspan>; <])bbr />    $unfals pan>);    &nbr />    ret an>//ret Ckboxc(fun!< span>arr">=pan>($inp= $chlen($inpingpan>, $inspan>, <]) ;votspan>$ch128pan>,     $unfals pan>);    &nbr />    return $une; pan>);&nbr />$unt;
iv>
down
14 0
marqeremy [atta] gl.ph [dotta] c/dd> If Aner.ph appro&nb to ct-ch-$inunie class.php />
<?php
function mb_nt_chars($inp= 1= 0);<
   
$l = 0pan>["Le'//uspan>);$unis/span>= $inspan>, $unPREG_SPLIT_NO_EMPTYpan>,
    $i atmp"pan>= $i acpan>,     $cha($charpan>, <] = issetspan>$i a($charpan>, <]) ?span>$cha($charpan>, <] +span>$ch1"pan>= <:tpan>$inspan>,     &nbr />    return $unis_boospan>; $in$xpan>,     $i ax"pan>= $cha= <:tpan>$innt_chpan>; $in$(
        &nb:tpan>$ina($chaxpan>, <]r />}

$inping"pan>= "Letşekph şekph yâriiiiiiiiiimmmmmspan>;
print_r( mb_nt_chars($inp= "Le'âspan>);//ret frences y of "â" />print_r( mb_nt_chars($inp= //ret nt_ch of que ass.ph />print_r( mb_nt_chars($inp= $une; pan>);//ret ll ract th a m
$unt;    &nb[ş/p>     &nb[=> 1 74 />    &nb[k/p>     &nb[r/p>     &nb[ /p>     &nb[y/p>     &nb[â/p>     &nb[i/p>     &nb[m/p> &nb)pan>
iv>
up
down
14 0
marseb at syn If Af occmunb trial Typerrory so-$into crea omulftion < of que uunracters. across nt_charsss ntde were wipedc(
<?php />function mb_unie]++span>$inping , <)br />&nbpan>$i atwopan>= 0]++span>$in_coureplaclpan>("Le' span>);"Le'span>);$unis/s , <)br />priiult"pan>= 0( mb_nt_chars]++span>$inptwopan>= 1, $uniultpan>);&nbr />//re*amples" i ::
funo an>mb_unie]++span>"Letbobspan>;//ret 2p/>funo an>mb_unie]++span>"LetInvisibilityspan>;//ret8p/>funo an>mb_unie]++span>"LetTfunquick br
;//ret26 />
$int;
iv>
up
down
14 -
mar?idC2-07d> If Heretryulftion < of ing $isnmn aring $i. Itn alsbee thd an arilelis utf8-nchblhdsrt_chars
<?php
function mb_utf8unt_chaing $ispan>]++span>$inping]++) />    $l = $inspan>,     $unilenSng= 0($inping]++)r />        for($i = 0;     forsp;   $chas="tPtion de pan>= 0);        $chas="tPtion de pan>= 0]++span>$inpt" iSnippespan>, $i]++/span>$i= <+span>$chilenSng(
    &nbr />    $chanurpan>= <+br />    }
    ret />    return
$uninurpan>= &nbr />$unt;
iv>
down
14 -
marEric Pecorarod> If an class="default"><?php
//re/ Require (n) que uunracters.
$inpp="d"pan>= "Le'123456'"pan>= //ret e; p/>$inpp="d"pan>= "Le'111222'"pan>= //ret fals p/>
$inreq_que;$inpp="dpan>]++/pan>$in3pan>,
&nb />&nbction
mb_req_que;$inping , $inpque;$in3pan>,     0( mb_nt_chars]++span>$inping , $inspan>, $l))    "Le'fals span>);    &nb}els r />    "Le'e; span>);    &nb} />}

$int;
iv>
down
14 -
marml claat ml cladoteorgd> If et Usefuln>ss the oritwolftion <?php
, <=pan>"Letaaabbcspan>;
//ret You just wantsto ct-chntha pers: a />$l( <=pan>$instr_count()]++span>$inping , "Letaspan>;//ret You wantsto ct-chnboth pers: a Typpers: b />$l]++=pan>$innt_chars]++span>$inping , $inspan>; <)/ />$l( <=pan>$in/ct-chspan>]++span>$ch">=pan>("Letaspan>;$l( <=pan>$in/ct-chspan>]++span>$ch">=pan>("Letbspan>;$int;
iv>
down
14 -3
marmaotmn at h clk cladotec/dd> If Here arese Gremoresexperit">/s tn s mb_relvely, y new Typ" irem, y h Tyynction.
<?php
= "Le'Ive pronevoccseen ANYTHINGke this.at becach! Mynnur">< mb_"4670-9394".span>);mb_nt_chars]++span>$inping , 1, $i ac/s"pan>= 1pan>["Le'Tfunracters.< span>);<.pan>mb_n/span>($in34pan>, <).pan>mb_n/span>($in$(mb_n/span>($in34pan>, <).pan>"Le' han apps aed mn s mb_ing);<.pan>mb_$hi>pan>["Le' tipac.;?phBRs );//r#Tfunults">"lookske th />funo an>mb_nt_chars]++span>$inping , $in3pan>,
//r#Tfunout
funo an>mb_len($inping , <).pan>"Le' mb_notetha s"> an span>);<.pan>mb_len($innt_chars]++span>$inping , 1, //r#Tfmb_ihowsis.at '70 mb_notetha s"> an 36' />$int;k s e_w( [utadescribed: nt_chars t(whie< helgrea rbeca th aring $inof nur">, ckbox $i: get s e_originalring $i'skeength, s enec/dpare withntha pength the oriing $inurns: Pr by nt_chars<?php
= mb_len($inping , <)/ />
$ininur_of_rs= mb_len($innt_chars]++span>$inping , 1, $inpdiffspan>= $i = <-span>$uninur_of_rs;$i adiffpan>["Le'A>"leasnchaunracters.< han been thd moresthclaonce.span>);"Le'As nracters.);$int;< of occurance, wen alnotego aly furr.ph by tha s"> rons sale Typs( [w enepdiffs=2 s ene2 racters. tif younwantsto e promorestentrol. />< of d">)b mn aring $i! (
iv>
up
down
14 -8
marapinpronap at gl.ph dotec/dd> If s mb_ntden alsfind h&nb racters.
<?php
/es"pan>= 0; $inpdonaspan>= mb_lentolowesspan>= $i aut );
&nbcach&nb span>$i rt_chars= $i adonapan> , 1, $i ai"pan>= 1,     &nbr />    $i a">/es"pan>= mb_span>,             $uni">/es"pan>= 0;     }    retsp; $i c/s"pan>= $i aupan>, "Let\nspan>;            "LetTfure arespan>1"Le mnstance(s) of \" E>/es"\" mn s e_ing;$uni">/es"pan>= 0,         retsp;         "LetTfure arespan>1"Le mnstance(s) of \"""pan>= 1= $i aupan>, "Le"\" mn s e_ing;    retr />$unt;
iv> iv> iv class="texfoo$unhref="/manual/votaddte.php?id=sectnction.count-chars&votredirectnhttp://fr2p?id.netnual/votfr/ction.count-chars&?idunhimg src='/im=fus/es-votadd@2x.png'd lt='addoa es-v' width='12' heigh ='12'>tromy" >addoa es-vpanmy" >> paneon.co>