Foros del Web » Programando para Internet » PHP »

Eliminar palabras de menos de 3 letras y separar resultados por comas

Estas en el tema de Eliminar palabras de menos de 3 letras y separar resultados por comas en el foro de PHP en Foros del Web. Hola gente, quiero hacer lo siguiente. Tomar el titulo de una noticia, eliminar las palabras de menos de 3 letras (ej: el, por, del, de, ...
  #1 (permalink)  
Antiguo 08/12/2008, 23:10
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 meses
Puntos: 1
Eliminar palabras de menos de 3 letras y separar resultados por comas

Hola gente, quiero hacer lo siguiente.
Tomar el titulo de una noticia, eliminar las palabras de menos de 3 letras (ej: el, por, del, de, etc) y dejar el resto de las palabras separados por una coma.
Es para generar los metatags de una página donde despliego cada noticia.

Así tomo el título:

Código PHP:
<?
$sqlnoticiaprincipal
="select * from noticia where id_noticia='$id_noticia'";    
$resultadonoticiaprincipal=mysql_query($sqlnoticiaprincipal,$link);
while (
$rownoticiaprincipal=mysql_fetch_array($resultadonoticiaprincipal))
{
?>
<title><?=$rownoticiaprincipal['titulo']?></title><?php ?>
Alguna ayudita?
  #2 (permalink)  
Antiguo 08/12/2008, 23:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Eliminar palabras de menos de 3 letras y separar resultados por comas

mmm.....

los caracteres los eliminas con expresiones regulares

Enlace: http://www.forosdelweb.com/f18/aport...s-pcre-646110/

y luego, separas la cadenas por algún carácter... usando explode

Enlace: http://php.net/explode

y las unes con join, o bien... solo reemplaza los espacios con comas, bingo!

Código PHP:
$str preg_replace('/\b[a-z]{1,3}\b/i'''$str); // reducimos palabras
$str preg_replace('/\s+/i'','$str); // cambiamos espacios
$str=trim($a,','); // quitamos residuos 


--
de ahí, solo resta tu creatividad y genio, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 09/12/2008 a las 00:55 Razón: regex corregido
  #3 (permalink)  
Antiguo 08/12/2008, 23:32
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Eliminar palabras de menos de 3 letras y separar resultados por comas

Muchas gracias por contestar.
El segundo $str divide el resultado con comas no?

Cómo asocio eso para largar el resultado de por ejemplo: $tit_corto= "$rownoticiaprincipal[titulo]";?
  #4 (permalink)  
Antiguo 09/12/2008, 00:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Eliminar palabras de menos de 3 letras y separar resultados por comas

no divide en comas... reemplaza los espacios por comas...

Código PHP:
$str 'mi viejo no quiere saber nada mas de musica';
// ... 
y resultaría algo así...

Código:
viejo,saber,nada,musica
no es complejo, espero te sirvas... suerte!


--
Edito: edite el post anterior, el regex estaba mal...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 09/12/2008 a las 00:55
  #5 (permalink)  
Antiguo 09/12/2008, 01:01
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 meses
Puntos: 1
Ahh excelente, excelente.. voy a ver como lo implemento.
Me he dado cuenta que para lo que quiero con los Metatags tengo que cambiar lo que tenía pensado y enviar un header() con todos los datos.. creo.

Gracias por la info!

Anda perfecto! ahora los metatags se crean solos, muchas gracias!

Me queda una duda.. pueden llevar tildes los metatags??

Saludos y gracias de nuevo

Última edición por GatorV; 09/12/2008 a las 09:07
  #6 (permalink)  
Antiguo 09/12/2008, 03:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Eliminar palabras de menos de 3 letras y separar resultados por comas

creo que si... pero mejor usa htmlentities ... suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 09/12/2008, 06:52
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Eliminar palabras de menos de 3 letras y separar resultados por comas

Bueno, al final quedó sin tildes y con las palabras bien formadas.
Dejo el código por si alguno quiere.

Código PHP:
$str="$rownoticiaprincipal[titulo]";
$str strtr($str"áéíóúÁÉÍÓÚñÑ""aeiouAEIOUnN"); // reemplazo los tildes
$str preg_replace('/\b[a-z]{1,3}\b/i'''$str); // reducimos palabras
$str preg_replace('/\s+/i'','$str); // cambiamos espacios 
$str trim($str,','); // eliminamos los residuos 
Muchas gracias pateketrueke! Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:35.