我正在搜索代码以验证用户提交的网址,以确保其以.jpg
,.png
或.jpeg
结尾,但我无法找到它。
我希望用preg_match()
完成。
答案 0 :(得分:5)
您可以使用preg_match这样做:
if(preg_match('/\.(jpg|png|jpeg)$/', $url)) {
}
但是使用pathinfo()还有其他方法:
$extension = pathinfo($url, PATHINFO_EXTENSION);
if (in_array($extension, array('jpg', 'png', 'jpeg'))) {
}
如果您想要更严格的验证,请先解析网址并从path
部分获取扩展程序:
$parts = parse_url($url);
$extension = pathinfo($parts['path'], PATHINFO_EXTENSION);
if (in_array($extension, array('jpg', 'png', 'jpeg'))) {
}
答案 1 :(得分:1)
假设您的网址位于变量$url
中,这应该有效:
$url = 'https://www.google.com/images/srpr/logo11w.png';
$an_image = preg_match("/^.*\.(jpg|jpeg|png|gif)$/i", $url);
if ($an_image) {
echo 'This is an image!';
}
答案 2 :(得分:0)
$post_content = '<a href="http://www.test.com" title="test">test.com</a> there is https://img.srgcdn.com/e//aUVTYlRFNXgyeFBQUGZNUk1DSzMuanBn.jpg another example <a href="http://www.test1.com">test1.com</a> one more here too <a href="http://www.test2.com" title="test2">test2.com</a> https://www.youtube.com/watch?vi=hjsdGD08xfg9c ';
preg_match_all('/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*\.(?:jpg|gif|png)/i', $post_content, $matches);
print_r($matches);