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:
December 14th, 2010 - 11:56
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()
December 14th, 2010 - 12:50
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 “\.,_”
December 14th, 2010 - 21:28
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!