Bueno, la cosa es que los archivos pueden tener casi cualquier caracter... Es decir... Creo que cuaquiera menos la "/"... Y para insertar eso en una base de datos es imposible, ya que practicamente dejaría las puertas abiertas a injecciones xDDD.
Esta es la expresión que estoy usando
Código:
preg_match("/^(?:http:\/\/)?[a-z0-9]{1}[a-z0-9-\.)]*\.[a-z]+(?:\/{1}[a-z0-9 -_\.]+)*\/?$/", $URL);
Acepta cosas como:
"http://www.ze.quezs--123co-m.ar.ar.9ar.ar/asd/"
"http://www.ze.quezs--123co-m.ar.ar.9ar.ar/asd"
"ze.quezs--123co-m.ar.ar.9ar.ar/asd/"
Pero por ejemplo, esto no lo acepta:
"http://www.ze.quezs--123co-m.ar.ar.9ar.ar/asd/indexxxxx()·$%.hml"
Es para una URL en realidad, pero al final no acepta algunos caracteres... ¿Que piensan? ¿Lo dejo así, y que se jodan si quieren poner como URL un archivo? xDD
Yo personalmente lo dejaría así, pero quiero alguna otra opinion xD.