Foros del Web » Programando para Internet » PHP »

Ayuda PHP!

Estas en el tema de Ayuda PHP! en el foro de PHP en Foros del Web. Buenas tardes, resulta que tengo un codigo para generar automaticamente keywords de páginas. Este sistema trabaja tomando todas las palabras del titulo de la pagina ...
  #1 (permalink)  
Antiguo 21/06/2010, 22:37
Avatar de allemand2  
Fecha de Ingreso: febrero-2010
Ubicación: Cordoba
Mensajes: 34
Antigüedad: 14 años, 2 meses
Puntos: 1
Ayuda PHP!

Buenas tardes, resulta que tengo un codigo para generar automaticamente keywords de páginas.
Este sistema trabaja tomando todas las palabras del titulo de la pagina y las coloca como keywords.

Pero me gustaria colocar de alguna forma, que obtenga todas las palabras del título, menos las que yo no quiera que se agreguen.

De esta manera evitaria que se indexen como keywords los de, |, [. ], más, con, y, tu, etc

Este es el código. Alguna idea?
Código PHP:
$keystring str_replace(' '','trim(título_pagina)); 
echo 
'<meta name="keywords" content="'$keystring'" />'
  #2 (permalink)  
Antiguo 21/06/2010, 22:59
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Ayuda PHP!

Agregale un array() al str_replace()
Código PHP:
$keystring str_replace(array("de","|","[",".","]","más""con""y","tu"), ','trim(t&#237;tulo_pagina)); 
echo '<meta name="keywords" content="'$keystring'" />'
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 21/06/2010, 23:40
Avatar de allemand2  
Fecha de Ingreso: febrero-2010
Ubicación: Cordoba
Mensajes: 34
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Ayuda PHP!

Muchas Gracias!

Pero tengo un problema. Si pongo quitar la palabra "mas", por ejemplo, si en el titulo tengo "problemas", me lo cambia a proble.

Alguna idea de como modificar eso?

Última edición por allemand2; 21/06/2010 a las 23:58
  #4 (permalink)  
Antiguo 22/06/2010, 00:31
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Ayuda PHP!

Puedes hacer esto:
Código PHP:
function keyString($title){
    
//convierto el titulo en arreglo
    
$titulo explode(' ',$title);
    
//cuento los elementos
    
$numT count($titulo);
    
//armo mi arreglo de filtros
    
$filtros = array("de","|","[",".","]","mas""con""y","tu");
    
//recorro los elementos de mi arreglo $titulo
    
for($x=0;$x<$numT;$x++){
        
//recorro los elementos de mi arreglo $filtros
        
foreach($filtros as $f){
            
//si el filtro es igual a la palabra del titulo
            
if($f == $titulo[$x]){
                
//saco el elemento del arreglo $titulo
                
unset($titulo[$x]);
            }
        }
        
//si esta el elemento en el arreglo titulo
        
if(isset($titulo[$x])){
            
//acumulo una cadena con el elemento mas una coma
            
$str .= $titulo[$x].',';
        }
    }
    
//devuelvo la cadena sin la ultima coma
    
return substr($str,0,strlen($str)-1);
}

echo 
keyString("Problemas mas comunes"); 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 22/06/2010, 10:56
Avatar de allemand2  
Fecha de Ingreso: febrero-2010
Ubicación: Cordoba
Mensajes: 34
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Ayuda PHP!

Eso funciona barbaro. Pero se me ocurrio una alternativa, que anda bastante bien:

Código PHP:
//1-Primero reemplazamos todos los simbolos raros por nada ('')
$keystring str_replace(array("|","-","[","]",">","<","&gt;","&lt;","+","!","(",")"), ''$context['page_title']); 
//2-Luego reemplazamos todas las palabras que no quiero agregando espacios antes y detras, por una coma. Tambien cambio los espacios por comas
$keystring str_replace(array(" más "," que "," lo "," El "," La "," Me "," me "," mas "," Mas "," Más "," por "," para "," y "," a "," de "," el "," la "," del "," en ","Los"," "), ','trim($keystring)); 
  echo 
'
  <meta name="keywords" content="'
$keystring'," />'
Ejemplo:
Los mejores programas del mundo!! [Gratuitos]
1er paso:
Los mejores programas del mundo Gratuitos
2do paso:
,mejores,programas,mundo,Gratuitos
  #6 (permalink)  
Antiguo 22/06/2010, 11:43
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Ayuda PHP!

Excelente!!

Tambien es buena opcion mantener una tabla que tenga estos datos dado que son proporcionales a las nuevas tecnologias y su nivel de "decrecimiento" es poco factible en estos tiempos de integracion.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 22/06/2010, 12:25
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Ayuda PHP!

Cita:
Iniciado por allemand2 Ver Mensaje
Eso funciona barbaro. Pero se me ocurrio una alternativa, que anda bastante bien:

Código PHP:
//1-Primero reemplazamos todos los simbolos raros por nada ('')
$keystring str_replace(array("|","-","[","]",">","<","&gt;","&lt;","+","!","(",")"), ''$context['page_title']); 
//2-Luego reemplazamos todas las palabras que no quiero agregando espacios antes y detras, por una coma. Tambien cambio los espacios por comas
$keystring str_replace(array(" más "," que "," lo "," El "," La "," Me "," me "," mas "," Mas "," Más "," por "," para "," y "," a "," de "," el "," la "," del "," en ","Los"," "), ','trim($keystring)); 
  echo 
'
  <meta name="keywords" content="'
$keystring'," />'
Ejemplo:
Los mejores programas del mundo!! [Gratuitos]
1er paso:
Los mejores programas del mundo Gratuitos
2do paso:
,mejores,programas,mundo,Gratuitos
en lugar de usar todooooo ese codigo solo usa la función strip_tags y listo. jejejej
  #8 (permalink)  
Antiguo 22/06/2010, 13:21
Avatar de allemand2  
Fecha de Ingreso: febrero-2010
Ubicación: Cordoba
Mensajes: 34
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Ayuda PHP!

Pero el strip_tags no es solo para eliminar etiquetas html?
  #9 (permalink)  
Antiguo 22/06/2010, 21:06
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Ayuda PHP!

si pero te puedes ahorrar este codigo

Código PHP:
$keystring str_replace(array("|","-","[","]",">","<","&gt;","&lt;","+","!","(",")"), ''$context['page_title']); 
con la funcion strip_tags
  #10 (permalink)  
Antiguo 22/06/2010, 23:26
Avatar de allemand2  
Fecha de Ingreso: febrero-2010
Ubicación: Cordoba
Mensajes: 34
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Ayuda PHP!

Cita:
Iniciado por kalvinman Ver Mensaje
si pero te puedes ahorrar este codigo
Código PHP:
$keystring str_replace(array("|","-","[","]",">","<","&gt;","&lt;","+","!","(",")"), ''$context['page_title']); 
con la funcion strip_tags
Tendrias la amabilidad de decirme como seria la sintaxis correcta?
Gracias desde ya.
  #11 (permalink)  
Antiguo 23/06/2010, 09:36
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Ayuda PHP!

el codigoque te propongo sale a razi decombinar cuatro funciones. strip tags, explode, str_replace e implode

Código PHP:
Ver original
  1. $contenido = strip_tags($contenido);
  2.  
  3. $eliminar = array(" más "," que "," lo "," El "," La "," Me "," me "," mas "," Mas "," Más "," por "," para "," y "," a "," de "," el "," la "," del "," en ","Los");
  4.  
  5. $contenido = str_replace($eliminar, " ", $eliminar);
  6. $contenido = str_replace(" ", ", ", $contenido);
  7. echo $contenido;

Si te gusto la respuesta porfavor dame buen karma. xD
  #12 (permalink)  
Antiguo 26/06/2010, 13:15
Avatar de allemand2  
Fecha de Ingreso: febrero-2010
Ubicación: Cordoba
Mensajes: 34
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Ayuda PHP!

Muchas gracias pero no me ha servido. El strip_tags solo me ha borrado los ">" "<" y alguno que otro simbolo, pero no los "|","-","[","]","+","!","(",",etc
  #13 (permalink)  
Antiguo 26/06/2010, 17:15
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Ayuda PHP!

Cita:
Iniciado por kalvinman Ver Mensaje
el codigoque te propongo sale a razi decombinar cuatro funciones. strip tags, explode, str_replace e implode

Código PHP:
Ver original
  1. $contenido = strip_tags($contenido);
  2.  
  3. $eliminar = array(" más "," que "," lo "," El "," La "," Me "," me "," mas "," Mas "," Más "," por "," para "," y "," a "," de "," el "," la "," del "," en ","Los");
  4.  
  5. $contenido = str_replace($eliminar, " ", $eliminar);
  6. $contenido = str_replace(" ", ", ", $contenido);
  7. echo $contenido;

Si te gusto la respuesta porfavor dame buen karma. xD
Añade en este array todos los elementos que quieras eliminar.

Código PHP:
$eliminar = array(" más "," que "," lo "," El "," La "," Me "," me "," mas "," Mas "," Más "," por "," para "," y "," a "," de "," el "," la "," del "," en ","Los"); 

Etiquetas: Ninguno
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 08:29.