Ver Mensaje Individual
  #9 (permalink)  
Antiguo 21/07/2011, 10:30
Avatar de jotaincubus
jotaincubus
 
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: [APORTE] Función extraer etiquetas cadena de texto usando artículos y prep

Buen día, decidí utilizar el código aportado por abimaelrc y lo coloque en mi proyecto, y O.o sorpresa, yo utilizo UTF-8 en mis paginas y en mi base de datos, entonces no me funciono con los caracteres especiales como son tildes, diéresis y esas cosas.

Asi, que utilie la codificacion UTF-8 en:

Código PHP:
Ver original
  1. function tags($string, $encoding = 'UTF-8'){

Pero resulta que no me funcionaba, después realice pruebas y me encontré que strtr de PHP era el que ponía el problema a la hora de trabajar con UTF-8

Me toco hacerle unos cambios al codigo de nuestro amigo para que me funcionara con UTF-8.

Si alguien tiene una mejor forma de arreglarlo pues estare muy atento y agradecido.

Código PHP:
Ver original
  1. <?php
  2.     function tags($string, $encoding = 'UTF-8'){
  3.         $string = trim(strip_tags(html_entity_decode(urldecode($string))));
  4.         if(empty($string)){ return false; }
  5.      
  6.         $extras = array(
  7.             'p'=>array('ante', 'bajo', 'con', 'contra', 'desde', 'durante', 'entre',
  8.                        'hacia', 'hasta', 'mediante', 'para', 'por', 'pro', 'segun',
  9.                        'sin', 'sobre', 'tras', 'via'
  10.             ),
  11.             'a'=>array('los', 'las', 'una', 'unos', 'unas', 'este', 'estos', 'ese',
  12.                        'esos', 'aquel', 'aquellos', 'esta', 'estas', 'esa', 'esas',
  13.                        'aquella', 'aquellas', 'usted', 'nosotros', 'vosotros',
  14.                        'ustedes', 'nos', 'les', 'nuestro', 'nuestra', 'vuestro',
  15.                        'vuestra', 'mis', 'tus', 'sus', 'nuestros', 'nuestras',
  16.                        'vuestros', 'vuestras'
  17.             ),
  18.             'o'=>array('esto', 'que'),
  19.         );     
  20.        
  21.         $string = mb_strtolower((string)$string, $encoding);
  22.         $string = utf8_decode($string);
  23.         $string = strtr($string,
  24.                         utf8_decode(âàåáäèéêëïîìíôöòóúûüùñ),
  25.                         'aaaaaeeeeiiiioooouuuun'
  26.         );
  27.         if(preg_match_all('/\pL{3,}/s', $string, $m)){
  28.             $m = array_diff(array_unique($m[0]), $extras['p'], $extras['a'], $extras['o']);
  29.         }
  30.         return $m;
  31.     }
  32. ?>

Espero le sirva a alguien.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???