Todo lo que ha dicho
HackmanC es correcto, pero, realmente tienes dos opciones:
1- Usar codificación en iso-8859-1 y no tendrás problemas con strlen() ni recorriendo caracter por caracter
2- Usar codificación utf-8 (o cualquier otra multibyte) y las funciones adecuadas:
http://www.php.net/manual/es/ref.mbstring.php
Entonces, para saber la longitud de una cadena en utf-8 debes usar mb_strlen() y para recorrer caracter por caracter tendrías que hacer algo como:
Código PHP:
Ver original$str = "México";
for($i=0;$i<$len;++$i) {
echo mb_substr($str, $i, 1, 'UTF-8')."<br/>"; }