Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/07/2011, 17:01
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: [APORTE] Función extraer etiquetas cadena de texto usando artículos y prep

Muy bueno me gustó mucho, hice una versión, se puede mejorar un poco más pero es lo que pude hacer rapido
Código PHP:
Ver original
  1. <?php
  2. function tags($string, $encoding = 'ISO-8859-1'){
  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 = strtr(mb_strtolower((string)$string, $encoding),
  22.                     'âàåáäèéêëïîìíôöòóúûüùñ',
  23.                     'aaaaaeeeeiiiioooouuuun'
  24.     );
  25.     if(preg_match_all('/\pL{3,}/s', $string, $m)){
  26.         $m = array_diff(array_unique($m[0]), $extras['p'], $extras['a'], $extras['o']);
  27.     }
  28.     return $m;
  29. }
  30. print_r(tags('Esto es un prueba, NO IMPORTA EL TAMAÑO se supone que muestre toda la prueba y únicas palabras.'));
En las preposiciones no le coloqué los acentos porque los quito antes de verificar si se encuentra.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos