¿como maneja php los caracateres acentuados y las eñes?
Publicado por Pepe Delgado (1 intervención) el 17/01/2023 11:39:16
Buenos días a todos. Intento guardar en un array los diferentes caracteres que se utilizan en un texo ordenados por orden de aparición. Y me encontré con esta peculiaridad en los acentos ¿Alguien sabe explicarme como maneja php esto?
Parece que php maneja los caraceteres acentuados y eñes como un par de elementos, pero no sé cuales son esos elementos. Por tanto no puedo identificar los diferentes caracteres acentuados ni las eñes. Al menos de esta menera.
Gracias!!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php $acentos = 'áéíóúñ';
$prueba_acentos="";
$array_acentos=array();
print 'strlen_acentos = ' . strlen($acentos); // 12 (!!!yo esperaba 6)
echo '<br>';
for($i=0;$i<strlen($acentos);$i++){
print substr($acentos,$i,1);
$prueba_acentos.=substr($acentos,$i,1);
$array_acentos[]=substr($acentos,$i,1);
}
//áéíóúñ (yo esperaba 12 caracteres)
echo '<br>';
print $prueba_acentos; //áéíóúñ (yo esperaba 12 caracteres)
echo '<br>';
for($i=0;$i<count($array_acentos);$i++){
print $array_acentos[$i];
}
//áéíóúñ (yo esperaba 12 caracteres)
echo '<br>';
//Sin embargo
for($i=0;$i<count($array_acentos);$i++){
print $array_acentos[$i];
print ',';
}
//�,�,�,�,�,�,�,�,�,�,�,�, (aqui ya hay 12 caracteres, o algo parecido, aunque no se ve cuales son)
echo '<br>';
print (in_array('á',$array_acentos)) ? 'existe á' : 'no existe á';//no existe á
echo '<br>';
//Sin embargo
$array_acentos_ok = array();
for($i=0;$i<count($array_acentos);$i++){
if(($i % 2) == 0){ //si es par creo un nuevo elemento en el array
$array_acentos_ok[$i] = substr($acentos,$i,1);
} else {
$array_acentos_ok[$i-1] .= substr($acentos,$i,1);//si es impar añado el segundo "caracter" al elemento que había en el array
}
}
print (in_array('á',$array_acentos_ok)) ? 'ahora existe á' : 'aun no existe á';//ahora existe á
?>
Parece que php maneja los caraceteres acentuados y eñes como un par de elementos, pero no sé cuales son esos elementos. Por tanto no puedo identificar los diferentes caracteres acentuados ni las eñes. Al menos de esta menera.
Gracias!!!
Valora esta pregunta


0