Jump to content

Funcion muy util para los que usan xml


Recommended Posts

Habia una vez...

 

ajaja no broma, les voy a contar una pequeñita historia y despues la funcion... bueno yo hace un tiempo deje de lado xml, pero aun lo sigo encontrando una buena forma de base de datos, pero el unico problema que siempre tube fue problema con los simbolos dentro de la base de datos asique cree una funcion bien humilde pero bien potente que reviza si una cadena tiene simbolos que xml en ASCII no puede leer.

 

¿XQ ASCII y no UTF-8 o derivados?

 

xq windows trabaja con esta "maravilla" de encoding entoces por ejemplo las áéíóú cosas asi que no son INGLISH tira errores entonces yo siempre tenia que guardar el archivo php como codificado en UTF-8 o agregar esta sentencia:

 

header('Content-Type: text/html; charset=UTF-8');

 

 

y realmente no me gustaba era una real lata, entoces para introducir datos correctamente y sin darme esa lata lo que hize fue hacer una funcioncita pequeña que me advertia si una cadena tenia simbolos que no deberian ir en un xml codificado en ascii:

 

otra cosa que adverti fue que teniendo:

 

<?xml version="1.0" encoding="UTF-8 (o sus derivados)"?> de todas mangueras habian errores con simbolos extraños como ¡ (signo de exlamacion para abajo), vocales con tilde, ñ y otros.... y para eso habia que abrir el archivo y guardarlo como codificado utf-8 y para mi eso es dejar de lado la estandarizacion.

 

y vivieron feliz para siempre xD jajaa

 

ya ahora la funcion.

 

repito es humilde pero potente

 

function simplexml_simbol_ascii($cadena)
{

$permit = array(" ", "!", "$", "%", '(', ')', "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ';', "=", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "_", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");

    for($i=0; $i<strlen($cadena); $i++)
    {
    $letra = substr($cadena,$i,1);
        if(in_array($letra, $permit) == false)
        {
        $end = 1;
        break;
        }
    }

    if($end == 1)
    {
    return false;
    }
    else
    {
    return true;
    }

}

 

y listo ^^

 

ahora como funciona:

 

$mi_cadena = "Esto es una simple cadena en ascii";
$mi_cadena2 = "Esto es una simple cádena en ascii"; //es la misma cadena solo que donde dice cadena le puse una á
$verificar = simplexml_simbol_ascii($mi_cadena);
$verificar2 = simplexml_simbol_ascii($mi_cadena2);

if($verificar == true)
{
echo "La cadena $mi_cadena se puede introducir en un xml ASCII sin dilemas";
}
else
{
echo "La cadena $mi_cadena NO se puede introducir en un xml ASCII";
}

if($verificar2 == true)
{
echo "La cadena $mi_cadena2 se puede introducir en un xml ASCII sin dilemas";
}
else
{
echo "La cadena $mi_cadena2 NO se puede introducir en un xml ASCII";
}

 

Espero que les sirva ^^

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...