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