getimagesize()是用來讀取GIF、JPG、 PNG 或 SWF圖檔的大小,並傳回圖檔的寬和高及檔案的類型,

<?php
list($width, $height, $type, $attr) = getimagesize(‘img/flag.jpg’);
echo “<img src=’img/flag.jpg’ $attr>”;
?>

不過,如果將圖檔路徑改成完整的網址的話(ex. http://www.exp.com/img/flag.jpg),有些網站就會報錯了
錯誤訊息大致如下:

Warning: getimagesize() [function.getimagesize]: URL file-access is disabled in the server configuration …

這是因為php.ini裡面的 “allow_url_fopen” 預設值為off,想要讓getimagesize()正常就必須將 “allow_url_fopen” 改為on,
如果你是使用虛擬主機來架站,往往他們不會幫你更動這一項設定,會用安全性的理由來回絕你,這時候怎麼辦?

那我們只好從修改路徑方式來做了,範例如下:

$img_size = @getimagesize ($img_url);
if ($img_size[0]==false) {
preg_match (‘#http://[^/]+(.+)#’, $img_url, $m);
$img_path=substr($m[1],1);
$img_size = @getimagesize ($img_path);
}

PHP warning about getimagesize()
標籤:        

發表迴響