Archivos de la categoría Scripts y funciones

Corrigiendo “símbolos raros” en php

Una de las cosas que más quebraderos de cabeza nos puede dar programando en php es la codificación de caracteres. Y muchas veces debemos presentar en nuestras páginas información de la cual no podemos controlar esta codificación obteniendo resultados desagradables con errores en los acentos, eñes y caracteres no ascii.

Una solución fácil y efectiva, aunque no será la más óptima, es una función que sustituya esos “símbolos raros” por su código html equivalente. De esta forma el navegador no tendrá ningún problema a la hora de mostrarlos.

1
2
3
4
function normStr($str) {
    $noASCII = array(' ' => '', '¡' => '¡', '¢' => '¢', '£' => '£', '¤' => '¤', 'Â¥' => '¥', '¦' => '¦', '§' => '§', '¨' => '¨', '©' => '©', 'ª' => 'ª', '«' => '«', '­' => '­', '®' => '®', '¯' => '¯', '°' => '°', '±' => '±', '²' => '²', '³' => '³', '´' => '´', 'µ' => 'µ', '·' => '·', '¸' => '¸', '¹' => '¹', 'º' => 'º', '»' => '»', '¼' => '¼', '½' => '½', '¾' => '¾', '¿' => '¿', 'À' => 'À', 'Á' => 'Á', 'Â' => 'Â', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Ã…' => 'Å', 'Æ' => 'Æ', 'Ç' => 'Ç', 'È' => 'È', 'É' => 'É', 'Ê' => 'Ê', 'Ë' => 'Ë', 'ÃŒ' => 'Ì', 'Í' => 'Í', 'ÃŽ' => 'Î', 'Ï' => 'Ï', 'Ð' => 'Ð', 'Ñ' => 'Ñ', 'Ã’' => 'Ò', 'Ó' => 'Ó', 'Ô' => 'Ô', 'Õ' => 'Õ', 'Ö' => 'Ö', '×' => '×', 'Ø' => 'Ø', 'Ù' => 'Ù', 'Ú' => 'Ú', 'Û' => 'Û', 'Ãœ' => 'Ü', 'Ý' => 'Ý', 'Þ' => 'Þ', 'ß' => 'ß', 'à ' => 'à', 'á' => 'á', 'â' => 'â', 'ã' => 'ã', 'ä' => 'ä', 'Ã¥' => 'å', 'æ' => 'æ', 'ç' => 'ç', 'è' => 'è', 'é' => 'é', 'ê' => 'ê', 'ë' => 'ë', 'Ã' => 'ì', 'í' => 'í', 'î' => 'î', 'ï' => 'ï', 'ð' => 'ð', 'ñ' => 'ñ', 'ò' => 'ò', 'ó' => 'ó', 'ô' => 'ô', 'õ' => 'õ', 'ö' => 'ö', '÷' => '÷', 'ø' => 'ø', 'ù' => 'ù', 'ú' => 'ú', 'û' => 'û', 'ü' => 'ü', 'ý' => 'ý', 'þ' => 'þ', 'ÿ' => 'ÿ');
    return (strtr($str, $noASCII));
}

splashDL

Hoy os traigo un gestor de descargas sencillo, de mi propia cosecha, para implementar en vuestras webs o blogs. De forma completamente transparente al usuario (y a vosotros mismos) presenta una página “splash” que retrasa la descarga unos segundos, con un banner publicitario de AdSense. Como añadido si se entra a la raíz del directorio de descargas muestra un listado de los archivos que se encuentran en el directorio con enlaces para descargar.

Sigue leyendo splashDL

Sustituir URLs por links con php

Tras mucho googlear y no encontrar ninguna función que buscase las urls correctamente superé mi vagancia natural y me decidí a crearla yo mismo copiando el comportamiento de twitter al poner urls en los tweets. La podéis ver funcionando en mi página TGMF en los comentarios de las fotos.

El resultado fue este:

1
2
3
4
5
6
7
8
function searchLinks($cadena){
  $cadena = " ".$cadena." ";
  $cadena = ereg_replace('([^a-zA-Z0-9@/."])(www.)([a-zA-Z0-9]{1}(\.*[_0-9a-zA-Z-]+)+\.{1}[a-zA-Z]{2,4})(/[-a-zA-Z0-9%_+.~#?&//=]+)*(:[0-9]+)*([^a-zA-Z0-9@])', '\1\3\5\7', $cadena);
  $cadena = ereg_replace('([^a-zA-Z0-9@/."])([a-zA-Z0-9]{1}[_0-9a-zA-Z-]+\.{1})([a-zA-Z]{1}(\.*[_0-9a-zA-Z-]+)+\.{1}[a-zA-Z]{2,4})(/[-a-zA-Z0-9%_+.~#?&//=!]+)*(:[0-9]+)*([^a-zA-Z0-9@])', '\1\2\3\5\7', $cadena);
  $cadena = ereg_replace('([^a-zA-Z0-9@/."])([a-zA-Z0-9]{1}(\.*[_0-9a-zA-Z-]+)+\.{1}[a-zA-Z]{2,4})(/[-a-zA-Z0-9%_+.~#?&//=]+)+(:[0-9]+)*([^a-zA-Z0-9@])', '\1\2\4\6', $cadena);
  $cadena = ereg_replace('([^a-zA-Z0-9@/."])(http://|ftp://|https://|ftps://)(www.)*([a-zA-Z0-9]{1}(\.*[_0-9a-zA-Z-]+)+\.{1}[a-zA-Z]{2,4})(/[-a-zA-Z0-9%_+.~#?&//=!]+)*(:[0-9]+)*([^a-zA-Z0-9])', '\1\4\6\8', $cadena);
  return trim($cadena);
}

Sigue leyendo Sustituir URLs por links con php