Foros del Web » Programando para Internet » PHP »

problemas con Preg_match_all

Estas en el tema de problemas con Preg_match_all en el foro de PHP en Foros del Web. Hola ami@s, tengo el siguiente problema, tengo un texto del que extraigo palabra por palabra para ir comparando parametros por ejemplo la terminacion y algunas ...
  #1 (permalink)  
Antiguo 06/07/2009, 09:04
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
problemas con Preg_match_all

Hola ami@s, tengo el siguiente problema, tengo un texto del que extraigo palabra por palabra para ir comparando parametros por ejemplo la terminacion y algunas otras cosas, pero en este momento me piden que compare si funciona la siguiente expresion regular y que la guarde en un texto y cree el siguiente codigo
Código PHP:
$regExp1="/(http://[^ ]*\.[a-z]{1,4}\/[^ ]*)/";
if(
preg_match_all($regExp1,$mensaje,$xy)){
       
$xy $xy."\r\n";
       
fwrite$fh$xy);
}else{
      
$xy $xy."\r\n";                            
      
fwrite$fa$xy);

pero me da error en el IF, e buscado informacion de como poner un IF al Preg_match_all y no encuentro, la expresion regular esta bien ya que la prove con un texto y trabaja bien
el error que me sale es este: Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '/' in C:\wamp\www\kav\correccion.php on line 582
y otra cosa que en el texto solo me sale escrito Array
  #2 (permalink)  
Antiguo 06/07/2009, 09:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: problemas con Preg_match_all

Debes escapar todos los /

Código PHP:
$regExp1="/(http:\/\/[^ ]*\.[a-z]{1,4}\/[^ ]*)/"
Te falto los de http:/ /
  #3 (permalink)  
Antiguo 06/07/2009, 09:26
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: problemas con Preg_match_all

gracias abimaelrc, eso mismo era el problema, queria preguntarte otra cosa, eneste momento ya esta trabajando bin esta expresion regular, pero lo que me doy cuenta es que por ejemplo tengo urls de dos tipos
1) http://xxx.xxxxx.com/
2) http://xxx.xxxxx.com/xxxxxxxxxxxxxxxx
y a la expresion regular le da lo mismo, pero a mi me gustaria que presente solo del segundo tipo, como podria hacer?
  #4 (permalink)  
Antiguo 06/07/2009, 09:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: problemas con Preg_match_all

en vez de usar * usa +
  #5 (permalink)  
Antiguo 06/07/2009, 09:38
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: problemas con Preg_match_all

Gracias, pero no era lo que queria, ya lo correji con esta expresion regular
Código PHP:
$regExp1="/(http:\/\/[^ ]*\.[a-z]{1,4}\/\w+[^ ]*)/"
claro que no se si le dara los mismo direcciones del tipo
http://xxxx.com/xxxxxxxx
http://xxxx.com/0000000
o cosas asi, que detecte numeros y todo tipo de caracteres despues del .com/
otra cosa, cuando trato de guardar en otro archivo las dirrecciones que no entran en este tipo, no se guardan en otro archivo que tengo, este es el codigo:
Código PHP:
if(preg_match_all($regExp1,$mensaje,$xy)){
                                            
$co count($xy[1]);
                                            for (
$ro 0$ro $co $ro++) {
                                                
$xyz $xy[1][$ro]."\r\n";
                                                
fwrite$fh$xyz);
                                            }
                                        }else{
                                            
$co count($xy[1]);
                                            for (
$ro 0$ro $co $ro++) {
                                                
$xyz $xy[1][$ro]."\r\n";
                                                
fwrite$fa$xyz);
                                            }
                                        } 
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 05:56.