我發現了一個漂亮的小php函數來檢查url是否爲圖像 - 還有一種方法可以確定圖像是否爲例如> 1mb?檢查網址中的圖像大小
發現的解決方案:
我找到了一個可行的解決方案在這裏:php how to get web image size in kb?
我發現了一個漂亮的小php函數來檢查url是否爲圖像 - 還有一種方法可以確定圖像是否爲例如> 1mb?檢查網址中的圖像大小
發現的解決方案:
我找到了一個可行的解決方案在這裏:php how to get web image size in kb?
來源:https://stackoverflow.com/a/3894706/187954
<?php
$headers = get_headers('http://humus101.com/wp-content/uploads/2009/11/Hummus-soup.jpg');
$size = null;
foreach($headers as $h){
/** look for Content-Length, and stick it in $size **/
}
if ($size === null){ //we didn't get a Content-Length header
/** Grab file to local disk and use filesize() to set $size **/
}
echo "image is $size bytes";
謝謝!如果它是1mb(即1024 * 1024),那麼我認爲$ size的值將是1048576? – weltschmerz
哦,我剛纔看到$ size是一個具有圖像高度和寬度的數組,但不是以字節爲單位的大小。有誰知道如何得到那個? – weltschmerz
@ Dennis大約在同一時間我注意到:)參考另一個SO回答更新了我的答案 –
我要提到這個職位,我認爲它會回答你的問題。 Easiest way to grab filesize of remote file in PHP?
有兩種方法(我知道)。一種是使用CURL並只提取標題(效率更高,不太可靠),並且file_get_contents (more reliable, less efficient)
。
使用CURL你可以得到只是CONTENT_LENGTH
標題這是文件大小。然後,你可以從那裏做簡單的數學,看看它是否超過1MB。問題在於遠程服務器可能不支持該功能。
通過使用strlen(file_get_contents("YOUR URL"))
您可以在文件中獲得總共的腳本,但腳本必須首先下載該文件,如果它是大圖像,則會出現問題。
要檢查文件類型,您可以使用substr來檢查文件擴展名。
像這樣的事情可以工作,但有自己的問題
$ext = substr($URL, -3, 3);
if($ext == 'jpg' || $ext == 'gif') {
//is image
}else{
//not image
}
邁克爾的方法比我的方法更好 –
謝謝!我想我找到了一個更清潔的解決方案。請參閱問題編輯。 – weltschmerz
下載並檢查大小。 – Asaph