我在查找驗證用戶提交的網址的代碼以確保它以.jpg
,.png
或.jpeg
結尾,但我無法找到它。我想用preg_match()
來完成。preg_match()for image我該怎麼做?
回答
你可以用的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'))) {
}
'pathinfo'絕對是一個更好的解決方案。但假設原始海報需要一個正則表達式是有原因的。 – JakeGould
pathinfo()也很好,但我無法讓它工作。 如果我使用preg_match(),你可以提交這個image.exe?extension = .jpg,我不希望這樣。 – user3368850
@ user3368850用更嚴格的驗證擴展我的答案,該驗證不允許使用'image.exe?extension = .jpg'。 –
假設您的網址是在變量$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!';
}
的
- 1. regexp freebie ...我該怎麼做?
- 2. 我該怎麼做?
- 3. 我該怎麼做?
- 4. 將PHP eregi轉換爲preg_match,我該怎麼做?
- 5. 我該怎麼做PyQt4?
- 6. 我該怎麼做Asp.Net?
- 7. 我該怎麼做? nope
- 8. 我該怎麼做MongoDB中
- 9. 我該怎麼做WKWebView
- 10. 我該怎麼做(遊戲)?
- 11. 我應該怎麼做?
- 12. 反思?我該怎麼做?
- 13. 我該怎麼做,我應該
- 14. for循環Django模板邏輯 - 我該怎麼做?
- 15. 這是什麼叫,我該怎麼做?
- 16. 我想運行「HttpAsyncTask」...我該怎麼做?
- 17. 我該怎麼做呢?用C
- 18. 我該怎麼做<T super V>?
- 19. 我該怎麼做queryOrdered(bychild)呢?
- 20. 我該怎麼做setOnClickListener在片段
- 21. C++ 11/Auto - 我應該怎麼做?
- 22. jQuery的問題 - 我該怎麼做?
- 23. WCHAR to String,我該怎麼做?
- 24. Eclipse交叉編譯...我該怎麼做?
- 25. 我該怎麼做認證在Android
- 26. 我該怎麼做<a href>?
- 27. list.setGrouped(true)不工作?我該怎麼做?
- 28. 生成S函數我該怎麼做
- 29. 我該怎麼做 - 動畫菜單
- 30. XML到XSL我該怎麼做錯了
可能重複[預浸\ _match的文件列表的擴展(http://stackoverflow.com/questions/10563796/preg-match- for-a-list-of-files-extension) – JakeGould
這個問題還不錯。但是,你有沒有嘗試過或試圖做的任何代碼示例? – JakeGould
@JakeGould不,我唯一擁有的是: $ image = $ _POST ['image']; 但這只是簡單的表單提交。 – user3368850