Juan Rabadan

12Mar/103

Funciones para incluir en nuestros helpers de codeigniter

Estimados usuarios, hace un par de meses que estoy investigando y desarrollando una aplicación con CodeIgniter. En esta oportunidad quiero compartir con ustedes algunas funciones muy útiles para incluir en nuestros helpers o plugins.

Object2Array

Con esta funcion podremos pasar un objeto a un array de tipo asociativo.

function object2array($object)
{
    if (is_object($object))
    {
        foreach ($object as $key => $value)
        {
            $array[$key] = $value;
        }
    }
    else
    {
        $array = $object;
    }
    return $array;
}

Array2Object

Esta función es la inversa de la anterior. Nos permite convertir un array asociativo en un objeto con propiedades.

function array2object($array) 
{
	if (is_array($array))
	{
		$obj = new StdClass();
		foreach ($array as $key => $val)
		{
			$obj->$key = $val;
		}
	}
	else 
	{ 
		$obj = $array; 
	}
	return $obj;
}

Normalizar un String
Una función esencial para los desarrolladores web. Para mejorar la visibilidad de nuestro sitio en los motores de búsqueda, se utiliza la reescritura de URL. Lo que permite que las URL sean más ricas a nivel de SEO. Con este propósito siempre es bueno tener una función para normalizar strings para que contengan caracteres válidos para nuestras url. Con esta función, aporte de mi amigo Angel, resuelves este problema.

function normalize($text, $separator = "-")
{
    $isUTF8 = (mb_detect_encoding($text." ",'UTF-8,ISO-8859-1') == 'UTF-8');
 
    $text = ($isUTF8) ? utf8_decode($text) : $text;
    $text = trim($text);
 
    $_a = utf8_decode("ÁÀãâàá");
    $_e = utf8_decode("ÉÈéè");
    $_i = utf8_decode("ÍÌíì");
    $_o = utf8_decode("ÓÒóò");
    $_u = utf8_decode("ÚÙúù");
    $_n = utf8_decode("Ññ");
    $_c = utf8_decode("Çç");
    $_b = utf8_decode("ß");
    $_dash = "\.,_ ";
    $text = ereg_replace("[$_a]", "a", $text );
    $text = ereg_replace("[$_e]", "e", $text );
    $text = ereg_replace("[$_i]", "i", $text );
    $text = ereg_replace("[$_o]", "o", $text );
    $text = ereg_replace("[$_u]", "u", $text );
    $text = ereg_replace("[$_n]", "n", $text );
    $text = ereg_replace("[$_c]", "c", $text );
    $text = ereg_replace("[$_b]", "ss", $text );
 
    $text = ereg_replace("[$_dash]", $separator, $text );
    $text = ereg_replace("[^a-zA-Z0-9\-]", "", $text );
    $text = strtolower($text);
 
    return ($isUTF8) ? utf8_encode($text) : $text;
}

Artículos relacionados:

  1. Funciones para extender el date helper en CodeIgniter
  2. Que son los hooks en CodeIgniter
  3. Colección de screencast sobre CodeIgniter
  4. Sitio offline por mantenimiento
  5. Personalizando la estructura de carpetas
Comentarios (3) Trackbacks (0)
  1. En lo de normalizar tu string, eso está genial, pero CI ya tiene una función en su URL Helper que te construye la cadena perfecta para tu URL.

    url_title()

  2. Hola Oriol, gracias por comentar en mi Blog. Particularmente la función que propongo te permite elegir cual es el caracter que quieres utilizar para reemplazar los caracteres del string $dash. En mi caso “\.,_”

  3. Yo es que suelo usar la que ya viene con el CI, te permite elegir entre el dash o guión (-) o la underscore o guión bajo (_).

    Y para hacer URL’s amigables, el mejor de ambos suele ser el dash. Pero como siempre, nunca sabemos cuando tendremos que usar otra cosa… así que snippet que va a mi evernote! :P


Comenta esta nota


No trackbacks yet.