Bunların sunucu sahte sonuç takmadan kandırabilir özel günler unutmayınız.
Örneğin:
http://www.myserver.com/virus.exe?fakeParam=.jpg
Veya
http://www.myserver.com/virus.exe#fakeParam=.jpg
Ben hızlı bir şekilde bu davaları önlemek için regex modifiye ettik, ama ben daha fazla olabileceğini eminim (örneğin, dosya yolu% 00 ekleme gibi, kolayca bir regex tarafından çözümlenen olamaz)
$matches = array();
preg_match_all('!http://[^?#]+\.(?:jpe?g|png|gif)!Ui' , $string , $matches);
Eğer sunucuyu biliyorum Yani, güvenlik için, en kısıtlayıcı şekilde regex her zaman kullanmak, örneğin, regex yazmak, ya da yol her zaman harfler, tire, nokta, eğik ve sayıları, kullanım içerecektir biliyorsanız bir ifade gibi:
$matches = array();
preg_match_all('!http://[a-z0-9\-\.\/]+\.(?:jpe?g|png|gif)!Ui' , $string , $matches);
Bu gelecekte herhangi komik bir sürpriz kaçınmalısınız.