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>