preg_match()用于图像我该怎么做?

时间:2014-05-25 15:42:30

标签: php

我正在搜索代码以验证用户提交的网址,以确保其以.jpg.png.jpeg结尾,但我无法找到它。

我希望用preg_match()完成。

3 个答案:

答案 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);