我正在搜索代码以验证用户提交的URL,以确保它以.jpg
, .png
或.jpeg
结束,但我找不到它。
我想用preg_match()
来做。
您可以像这样使用preg_match:
if(preg_match('/'.(jpg|png|jpeg)$/', $url)) {
}
但是还有另一种方法使用pathinfo():
$extension = pathinfo($url, PATHINFO_EXTENSION);
if (in_array($extension, array('jpg', 'png', 'jpeg'))) {
}
如果需要更严格的验证,则首先解析URL并从path
部分获取扩展名:
$parts = parse_url($url);
$extension = pathinfo($parts['path'], PATHINFO_EXTENSION);
if (in_array($extension, array('jpg', 'png', 'jpeg'))) {
}
假设您的URL在变量$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!';
}
$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);