Sé libre de divulgar nuestro espacio y códigos con otro, necesitamos tu ayuda para ampliar nuestra comunidad.
yo no llamaria a esa funcion string_sanitize()
, ya que es engañoso. podrías llamarlo strip_non_alphanumeric()
.
Su función actual eliminará cualquier cosa que no sea una letra mayúscula o minúscula o un número.
Puedes desnudarte solo '
y "
con…
$str = str_replace(array(''', '"'), '', $str);
parece tu original string tenía los caracteres HTML para "
("
) de modo que cuando intente desinfectarlo, simplemente quite el &
y ;
dejando el resto del string quot
.
—EDITAR—
Probablemente, la forma más fácil de eliminar caracteres no alfanuméricos sería decodificar los caracteres HTML con html_entity_decode y luego ejecutarlos a través de la expresión regular. Dado que, en este caso, no obtendrá nada que deba volver a codificarse, no necesita hacer htmlentities, pero vale la pena recordar que tenido datos HTML y ahora tiene crudo sin codificar datos.
P.ej:
function string_sanitize($s)
$result = preg_replace("/[^a-zA-Z0-9]+/", "", html_entity_decode($s, ENT_QUOTES));
return $result;
Tenga en cuenta que ENT_QUOTES
marca la función para “… convertir comillas dobles y simples”.
Creo que su llamada preg_replace debería ser así:
$result = preg_replace("/[^a-zA-Z0-9]+/", "", html_entity_decode($s));
Consulte la referencia de html_entity_decode para obtener más detalles.
valoraciones y reseñas
Si posees alguna duda y capacidad de mejorar nuestro post te sugerimos ejecutar una crítica y con gusto lo interpretaremos.