Ciao ho fatto un programmino per contare data una stringa il numero di caratteri e numeri presenti:
Il codice è questo:
<?php
$s = 'nel mondo ci sono 7.000.000.000 di persone';
$a = str_split($s);
$ch = 0;
$dgt = 0;
for ($i=0; $i< count($a); $i++){
if($a[$i] == ' ') continue;
if(preg_match('/[0-9]/',$a[$i])){
$dgt += 1;
}else{
$ch += 1;
}
}
echo "$ch\n$dgt";
?>
//output
26
10
Il programma funziona alla perfezione fino a quando non inserisco una qualunque lettera accentata: se inserisco una è il conteggio diventa 28 - 10 come se la lettera accentata la contasse 2 volte.
Ho fatto qualche ricerca e sembra essere dovuto al
multibytes string qualcuno saprebbe spiegare meglio perchè?
Grazie