Programación Avanzada

PHP

Crear url a partir de un texto con PHP

por tryke en Dic.17, 2008, dentro PHP

En algunas ocasiones puede interesarnos generar urls dinamicamente a partir de un título.

Esta técnica se utiliza mucho por temas de posicionamiento en buscadores. Yo no he sabido encontrar ninguna función en PHP que te quite los acentos para poder generar una url a partir de un texto. Asi que me cree mi propia solución para este problema.

La idea es muy simple, creamos una pequeña función que mediante expresiones regulares sustituya los caracteres con acentos por el caracter que más se le asemeja.

función para quitar acentos

  1. <?php
  2.  static public function fsPath($texto) {
  3.   $s = trim($texto);
  4.   $s = strtolower($s);
  5.   $s = ereg_replace("[ ]+","-",$s);
  6.   $s = ereg_replace("ç","c",$s);
  7.   $s = ereg_replace("ñ","n",$s);
  8.   $s = ereg_replace("á|à|â|ã|ä|â|ª","a",$s);
  9.   $s = ereg_replace("í|ì|î|ï","i",$s);
  10.   $s = ereg_replace("é|è|ê|ë","e",$s);
  11.   $s = ereg_replace("ó|ò|ô|õ|ö|º","o",$s);
  12.   $s = ereg_replace("ú|ù|û|ü","u",$s);
  13.   $s = ereg_replace("[^a-z0-9_-]",'',$s);
  14.   return substr($s, 0, 40);
  15.  }
  16. ?>

Por último se corta el texto para que tenga un máximo de 40 caracteres para evitar que salgan URLs demasiado largas.

ejemplo

  1. <?php
  2. $titulo = "Casa en cataluña";
  3. $url = fsPath($titulo) . ".html";
  4. echo $url; //casa-en-cataluna.html
  5. ?>
Hacer un Comentario :acentos, PHP, url más...

Recorrer directorios con PHP

por admin en Dic.15, 2008, dentro PHP

  1. <?php
  2. define('_DIRECTORIO', '/i18n');
  3.  
  4. //Buscar: __('Texto a traducir', null, 'home')
  5. //Buscar: __('Texto a traducir')
  6.  
  7. function fvParse($file) {
  8.  //Abrir archivo…
  9.  $contenido = file_get_contents($file);
  10.  if (preg_match_all("|__\([\'\"]([^\'\"]*)[\'\"]([^\'\"]*[\'\"]([^\'\"]*)[\'\"])*\)|U", $contenido, $salida, PREG_SET_ORDER)) {
  11.   echo $file . "\n";
  12.   foreach ($salida as $i) {
  13.    if (count($i) > 2) {
  14.     echo 'Texto: ' . htmlspecialchars($i[1]);
  15.    }
  16.   }
  17.  }
  18. }
  19.  
  20. //Recorre recursivamente todas las carpetas del directorio indicado…
  21. function fvRecorrido($dir) {
  22.  if ($dp = @opendir($dir)) {
  23.   while ($file = readdir($dp)) {
  24.    if ($file != '.' && $file != '..'  && $file != '.svn') {
  25.     if (is_dir($dir . '/' . $file)) {
  26.      fvRecorrido($dir . '/' . $file);
  27.     } else {
  28.      fvParse($dir . '/' . $file);
  29.     }
  30.    }
  31.   }
  32.   closedir($dp);
  33.  }
  34. }
  35.  
  36. fvRecorrido(_DIRECTORIO);
  37. ?>
Hacer un Comentario :i18n, PHP más...

¿Buscas Algo?

Usa este formulario para buscar en el blog:

¿No encuentras lo que estas buscado? Si quieres borrar un comentario de un post contacta con nosotros, podemos ayudarte!

¡Visita nuestros amigos!

Listado de webs recomendadas...

Archivos

Todas las entradas, cronologicamente...