Cita:
Iniciado por bNd170 pateketrueke, la funcion ents (Supongo que será de arguments) no está definida, la he buscado por internet pero no he logrado encontrar gran cosa, podrias decirme que hace?
lo siento, en realidad
ents() es mi propia versión extendida de
htmlentities() que tiene la ventaja de no romper entidades previamente codificadas...
Código PHP:
/**
* Reparar entidades
*
* @param string $text Cadena
* @param boolean $html Escapar xHTML?
* @return string
*/
function ents($text, $html = FALSE)
{//--
$hash = uniqid('--entity-backup');
$text = preg_replace('/&([a-z0-9;_]+)=([a-z0-9_]+)/i', "{$hash}\\1=\\2", $text);
$expr = array(
'/(&#?[0-9a-z]{2,})([\x00-\x20])*;?/i' => '\\1;\\2',
'/&#x([0-9a-f]+);?/ei' => 'chr(hexdec("\\1"))',
'/(&#x?)([0-9A-F]+);?/i' => '\\1\\2;',
'/&#(\d+);?/e' => 'chr("\\1")',
);
$text = preg_replace(array_keys($expr), $expr, $text);
$text = preg_replace('/&(#?[a-z0-9]+);/i', "{$hash}\\1;", $text);
$text = str_replace(array('&', chr(92), $hash), array('&', '&' . '#92;', '&'), $text);
if ($html === TRUE)
{
$text = strtr($text, array(
'<' => '<',
'>' => '>',
'"' => '"',
"'" => '&' . '#34;',
));
}
$text = preg_replace("/[\200-\237]|\240|[\241-\377]/", '\\0',$text);
$text = preg_replace("/{$hash}(.+?);/", '&\\1;', $text);
return $text;
}
aunque básicamente funciona como
htmlentites()