count_chars

(PHP 4, PHP 5)

count_chars — Возвращает информацию о символах, входящих в строку

Описание

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

Подсчитывает количество вхождений каждого из символов с ASII кодами в диапазоне (0..255) в строку string и возвращает эту информацию в различных формата. Необязательный аргумент mode по умолчанию равен 0. В зависимости от его значения возвращается:

  • 0 - массив, индексами которого являются ASCII коды, а значениями - число вхождений соответствующего символа.
  • 1 - то же, что и для 0, но информация о символах с нулевым числом вхождений не включается в массив.
  • 2 - то же, что и для 0, но в массив включается информация только о символах с нулевым числом вхождений.
  • 3 - строка, состоящая из символов, которые входят в исходую строку хотя бы раз.
  • 4 - строка, состоящая из символов, которые не входят в исходую строку

Пример #1 Пример использования count_chars()

<?php

$data 
"Две в и одна с";

$result count_chars($data0);

for (
$i=0$i count($result); $i++) {
   if (
$result[$i] != 0)
       echo 
"\"" chr($i) , "\" встречается в строке $result[$i] раз(а).\n";
}

?>

Этот код выведет :

" " встречается в строке 4 раз(а).
"Д" встречается в строке 1 раз(а).
"а" встречается в строке 1 раз(а).
"в" встречается в строке 2 раз(а).
"д" встречается в строке 1 раз(а).
"е" встречается в строке 1 раз(а).
"и" встречается в строке 1 раз(а).
"н" встречается в строке 1 раз(а).
"о" встречается в строке 1 раз(а).
"с" встречается в строке 1 раз(а).

См. также описание функций strpos() и substr_count().

Коментарии

// Usefulness of the two functions

<?php
 $string
="aaabbc";

 
// You just want to count the letter a
 
$acount=substr_count($string,"a");

 
// You want to count both letter a and letter b
 
$counts=count_chars($string,0);
 
$acount=$counts[ord("a")];
 
$bcount=$counts[ord("b")];
?>
2002-01-29 18:27:10
http://php5.kiev.ua/manual/ru/function.count-chars.html
After much trial and error trying to create a function that finds the number of unique characters in a string I same across count_chars() - my 20+ lines of useless code were wiped for this:

<?
function unichar($string) {
$twostrtolower(str_replace(' '''$string));
$res count(count_chars($two1));
return 
$res;
}

/* examples :: */

echo unichar("bob"); // 2
echo unichar("Invisibility"); //8
echo unichar("The quick brown fox slyly jumped over the lazy dog"); //26

?>

I have no idea where this could be used, but it's quite fun
2004-05-16 18:08:21
http://php5.kiev.ua/manual/ru/function.count-chars.html
Автор:
<?php

// Require (n) unique characters in a string
// Modification of a function below which ads some flexibility in how many unique characters are required in a given string.

$pass '123456' // true
$pass '111222' // false

req_unique($pass,3);

function 
req_unique($string,$unique=3) {
    if ( 
count(count_chars($string,1)) < $unique) {
        echo 
'false';
    }else{
        echo 
'true';
    }
}

?>
2005-05-27 10:31:10
http://php5.kiev.ua/manual/ru/function.count-chars.html
This function is great for input validation.  I frequently need to check that all characters in a string are 7-bit ASCII (and not null).  This is the fastest function I have found yet:

<?php
function is7bit($string) {
   
// empty strings are 7-bit clean
   
if (!strlen($string)) {
        return 
true;
    }
   
// count_chars returns the characters in ascending octet order
   
$str count_chars($str3);
   
// Check for null character
   
if (!ord($str[0])) {
        return 
false;
    }
   
// Check for 8-bit character
   
if (ord($str[strlen($str)-1]) & 128) {
        return 
false;
    }
    return 
true;
}
?>
2007-07-28 21:29:57
http://php5.kiev.ua/manual/ru/function.count-chars.html
Автор:
Here's a function to count number of strings in a string. It can be used as a simple utf8-enabled count_chars (but limited to a single mode)...

<?php
function utf8_count_strings($stringChar)
{
   
$num = -1;
   
$lenStringChar strlen($stringChar);
   
    for (
$lastPosition 0
       
$lastPosition !== false;
       
$lastPosition strpos($textSnippet$stringChar$lastPosition $lenStringChar))
    {
       
$num++;
    }
   
    return 
$num;
}
?>
2007-12-04 09:42:21
http://php5.kiev.ua/manual/ru/function.count-chars.html
Автор:
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$i1'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_rmb_count_chars($input) ); 
//returns: Array ( [L] => 1 [e] => 7 [t] => 4 ['] => 1 [s] => 5 [ ] => 9 [r] => 3 [y] => 1 [o] => 1 [m] => 1 [G] => 1 [k] => 1 [l] => 1 [:] => 3 [α] => 5 [Ε] => 1 [ε] => 1 [Ι] => 1 [ι] => 1 [Μ] => 1 [μ] => 1 [Ψ] => 1 [ψ] => 1 [,] => 2 [R] => 1 [u] => 1 [i] => 1 [a] => 1 [n] => 1 [Й] => 2 [Ы] => 2 [Щ] => 1 [Н] => 1 [C] => 1 [z] => 1 [c] => 1 [h] => 1 [ě] => 1 [š] => 1 [č] => 1 [ř] => 1 [ž] => 1 [ý] => 1 [á] => 1 [í] => 1 [é] => 1 )
?>
2012-02-01 13:43:59
http://php5.kiev.ua/manual/ru/function.count-chars.html
Автор:
count_chars for multibyte supported.

<?php

function mb_count_chars ($string$mode 0) {
   
   
$result array_fill(02560);
   
    for (
$i 0$size mb_strlen($string); $i $size$i++) {
       
$char mb_substr($string$i1);
        if (
strlen($char) > 1) {
            continue;
        }
       
       
$code ord($char);
        if (
$code >= && $code <= 255) {
           
$result[$code]++;
        }
    }
   
    switch (
$mode) {
        case 
1// same as 0 but only byte-values with a frequency greater than zero are listed.
           
foreach ($result as $key => $value) {
                if (
$value == 0) {
                    unset(
$result[$key]);
                }
            }
            break;
        case 
2// same as 0 but only byte-values with a frequency equal to zero are listed.
           
foreach ($result as $key => $value) {
                if (
$value 0) {
                    unset(
$result[$key]);
                }
            }
            break;
        case 
3// a string containing all unique characters is returned.
           
$buildString '';
            foreach (
$result as $key => $value) {
                if (
$value 0) {
                   
$buildString .= chr($key);
                }
            }
            return 
$buildString;
        case 
4// a string containing all not used characters is returned.
           
$buildString '';
            foreach (
$result as $key => $value) {
                if (
$value == 0) {
                   
$buildString .= chr($key);
                }
            }
            return 
$buildString;
    }
   
   
// change key names...
   
foreach ($result as $key => $value) {
       
$result[chr($key)] = $value;
        unset(
$result[$key]);
    }
   
    return 
$result;
   
}
?>
2016-01-26 19:29:44
http://php5.kiev.ua/manual/ru/function.count-chars.html
Автор:
Checking that two strings are anagram:

<?php

function isAnagram($string1$string2)
{
  return 
count_chars($string11) === count_chars($string21);
}

isAnagram('act''cat'); // true

?>
2020-02-22 20:44:05
http://php5.kiev.ua/manual/ru/function.count-chars.html

    Поддержать сайт на родительском проекте КГБ