Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2013, 11:09
Erick_MD9
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 11 años, 3 meses
Puntos: 55
Ver Propiedades de los caracteres Unicode PCRE

Hola, despues de pelearme toda la semana con las Propiedades Unicode de PCRE y encontrar poca informacion en la web, decidí verlas por mi mismo.

Les dejo el script que realice.

Probado con:
PHP 5.3
PCRE 8.32
Navegadores recientes.

Dependiendo del navegador, muestra algunos caracteres distintos. He visto diferencia en los de Control.
Hay que cambiar los valores del bucle for para ver los caracteres que te interesan.

Funcionando.
Me deje llevar por la emocion.
Espero les sirva.
Saludos

Código PHP:
<!DOCTYPE HTML> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head><body>
<?php
$PropiedadesPCRE
=array(
    
'C','Cc','Cf','Cn','Co','Cs',     
    
'L','Ll','Lm','Lo','Lt','Lu',
    
'M','Mc','Me','Mn','N','Nd'
    
'Nl','No','P','Pc','Pd','Pe',
    
'Pf','Pi','Po','Ps','S','Sc',
    
'Sk','Sm','So','Z','Zl','Zp',
    
'Zs');

echo
'<table style="border:1px solid black;" >';
echo
'<tr>
<td>UNICODE</td>
<td>HTML HEX</td>
<td>HTML DEC</td>'
;
foreach(
$PropiedadesPCRE as $propiedad){
    echo
"<td>$propiedad</td>";
}
echo
'</tr>';
for(
$a=0;$a<=1000;$a++){
    
$hex=dechex($a);
    if(
strlen($hex)==1){$unicode='000'.$hex;}
    if(
strlen($hex)==2){$unicode='00'.$hex;}
    if(
strlen($hex)==3){$unicode='0'.$hex;}
    if(
strlen($hex)>=4){$unicode=$hex;}
    
$caracter=mb_convert_encoding"&#$a;" 'UTF-8' 'HTML-ENTITIES' );
    
$RESULTS=array();
    foreach(
$PropiedadesPCRE as $propiedad){
        
$RESULTS[]=preg_match('/\p{'.$propiedad.'}/u',$caracter);
    }
    echo
"<tr><td>U+$unicode</td><td>&#x$unicode;</td><td>&#$a;</td>";
    foreach(
$RESULTS as $result){
        echo
"<td>$result</td>";
    }
    echo
"</tr>";
}
echo
'<table>';
?>
<body></html>

Última edición por Erick_MD9; 03/10/2013 a las 22:42