Foros del Web » Programando para Internet » PHP »

Problema con sistema de filtrado

Estas en el tema de Problema con sistema de filtrado en el foro de PHP en Foros del Web. Hola amigos, les ecribo por un problema que tengo en un sistema de filtrado de URLs de una lista .txt (y lo mas extraño es ...
  #1 (permalink)  
Antiguo 09/03/2010, 22:36
 
Fecha de Ingreso: enero-2009
Ubicación: en la casa
Mensajes: 223
Antigüedad: 11 años
Puntos: 3
Problema con sistema de filtrado

Hola amigos, les ecribo por un problema que tengo en un sistema de filtrado de URLs de una lista .txt (y lo mas extraño es que no me da errores para poderlos corregir)
bueno el codigo es el siguiente
Código PHP:
$text = @file_get_contents($archivo);
$text trim($text);        
$text preg_replace("/\s\s+/"' '$text);
$regExp1="/(http:[^ ]*)/i";
preg_match_all($regExp1,$text,$a);
$count count($a[1]);
$fa fopen("WL $gm.txt""a+" );
$fh fopen("$gm.txt""w" );
$tega "URL_REPORT_START \r\n\r\n";                            
fwrite$fh$tega);
for (
$row 0$row $count $row++) {
    
$mensaje $a[1][$row];
    if((
strlen($mensaje)-4) == strripos($mensaje,".com")){
        
$mensaje $mensaje."\r\n";                            
        
fwrite$fa$mensaje);
    }else{
        if((
strlen($mensaje)-4) == strripos($mensaje,".org")){
            
$mensaje $mensaje."\r\n";                            
            
fwrite$fa$mensaje);
        }else{
            if((
strlen($mensaje)-4) == strripos($mensaje,".net")){
                
$mensaje $mensaje."\r\n";                            
                
fwrite$fa$mensaje);
            }else{
                if((
strlen($mensaje)-3) == strripos($mensaje,".ru")){
                    
$mensaje $mensaje."\r\n";                            
                    
fwrite$fa$mensaje);
                }else{
                    if((
strlen($mensaje)-3) == strripos($mensaje,".br")){
                        
$mensaje $mensaje."\r\n";                            
                        
fwrite$fa$mensaje);
                    }else{
                        if((
strlen($mensaje)-4) == strripos($mensaje,".edu")){
                            
$mensaje $mensaje."\r\n";                            
                            
fwrite$fa$mensaje);
                        }else{
                            if((
strlen($mensaje)-3) == strripos($mensaje,".cn")){
                                
$mensaje $mensaje."\r\n";                            
                                
fwrite$fa$mensaje);
                            }else{
                                if((
strlen($mensaje)-3) == strripos($mensaje,".uk")){
                                    
$mensaje $mensaje."\r\n";                            
                                    
fwrite$fa$mensaje);
                                }else{
                                    if((
strlen($mensaje)-5) == strripos($mensaje,".info")){
                                        
$mensaje $mensaje."\r\n";                            
                                        
fwrite$fa$mensaje);
                                    }else{
                                        
$regExp1="/(http:\/\/[^ ]*\.[a-zA-Z0-9]{1,4}\/\S[^ ]*)/";
                                        if(
preg_match_all($regExp1,$mensaje,$xy)){
                                            
$mensaje $mensaje."\r\n";    
                                            
fwrite$fh$mensaje);
                                        }
                                        
$regExp2="/(http:\/\/[^ ]*\.[a-zA-Z0-9]{1,4}:[0-9]{1,6}\/\S[^ ]*)/";
                                        if(
preg_match_all($regExp2,$mensaje,$xy)){
                                            
$mensaje $mensaje."\r\n";    
                                            
fwrite$fh$mensaje);
                                        }
                                        if(!
preg_match_all($regExp1,$mensaje,$xy) && !preg_match_all($regExp2,$mensaje,$xy)){
                                            
$mensaje $mensaje."\r\n";    
                                            
fwrite$fa$mensaje);
                                        }
                                    }
                                }
                            }
                        }
                    }    
                }
            }
        }
    }    

Como les dije es un filtro de URLs, en este caso deja las URLs con extension y retira las que no tienen extension, osea
- con extension: http://www.forosdelweb.com/page7.php
- sin extension: http://www.forosdelweb.com/
el problema radica cuando encuentra URLs como esta (al momenta es la unica que e podido encontrar, puede dar errores con otras mas, pero no e visto):
- http://255.001/d=green.net/8/view
en la cual el programa se confunde y deja de trabajar dejando a la mitad el filtrado de la lista. Alguien que pueda ayudarme a corregir el codigo

salu2
  #2 (permalink)  
Antiguo 10/03/2010, 09:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 9 meses
Puntos: 1517
Respuesta: Problema con sistema de filtrado

Para que podamos ver lo que tienes, hazle un var_dump a la variable $a.
Código PHP:
Ver original
  1. preg_match_all($regExp1,$text,$a);
  2. var_dump($a[1]);
y escribe lo que te trae.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: sitemap, filtros
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 23:39.