A. php 獲取文件mime類型的幾種方法
多用於指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
php獲取文件mime類型有以下幾種方法:
1、mime_content_type()函數判斷獲取mime類型
mime_content_type返回指定文件的MIME類型,
用法:echomime_content_type('php.gif') .
"\n";echomime_content_type('test.php');輸出:image/giftext/plain但是php 5.3.0已經將該函數廢棄。如果仍想使用此函數,那麼可以對php進行配置啟用magic_mime擴展。
2、php Fileinfo 獲取文件MIME類型(finfo_open)
PHP官方推薦mime_content_type()的替代函數是Fileinfo函數。PHP
5.3.0+已經默認支持Fileinfo函數(fileinfo
support-enabled),不必進行任何配置即可使用finfo_open()判斷獲取文件MIME類型。
用法:$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
3、image_type_to_mime_type()獲取圖片MIME類型
注意:需要在php.ini中配置打開php_mbstring.dll(Windows需要)和extension=php_exif.dll。
4、php上傳文件獲取MIME類型
B. PHP中獲取變數中的圖片信息
就這個片段來說取<p>,</p>之間的內容:
preg_match("/<p>(.*?)<\/p>/sm",$content,$temp_con,PREG_SET_ORDER);
注意</p>中的/要轉義。
得出的結果$temp_con是數組,
$temp_con[1]就是您想要的。
或者:
preg_match("/<img (.*?)>/sm",$content,$temp_con,PREG_SET_ORDER);
結果是$temp_con[0]。
如果變數里有多個圖片,要取出所有的,用preg_match_all。
C. 如何用php調用圖片
PHP調用?好的,如果是HTML的話很簡單(只需要<img>標記插入即可),那麼我回答一下PHP的載入吧,代碼如下:
//設置圖片路徑
$path='/tupian/1.jpg';
//獲取圖片信息
$imgInfo=getimagesize($path);
//獲取圖片類型
$imgType=$imgInfo[2];
//檢測圖片類型
switch($imgType){
case1://gif
//採用gif方式載入
$img=imagecreatefromgif($path);
//聲明文件為圖片類型
header('Content-Type:image/gif;');
//採用gif方式輸出
imagegif($img);
break;
case2://jpg
//採用jpg方式載入
$img=imagecreatefromjpeg($path);
//聲明文件為圖片類型
header('Content-Type:image/jpeg;');
//採用jpeg方式輸出
imagejpeg($img);
break;
case3://png
//採用png方式載入
$img=imagecreatefrompng($path);
//聲明文件為圖片類型
header('Content-Type:image/png;');
//採用png方式輸出
imagepng($img);
break;
default:
exit('圖片格式不支持!');
}
//銷毀圖片資源
imagedestroy($img);
//刪除變數
unset($img);
以上若還有什麼不明白的,歡迎追問~
D. php怎麼獲取本地圖片信息
用glob很方便就可獲得。
$img = array('gif','png','jpg');//所有圖片的後綴名
$dir = 'data/';//文件夾名稱
$pic = array();
foreach($img as $k=>$v)
{
$pattern = $dir.'*.'.$v;
$all = glob($pattern);
$pic = array_merge($pic,$all);
}
foreach($pic as $p)
{
//分行分頁顯示代碼
}
如果和圖片是同一個文件夾,那要將
$dir = 'data/';//文件夾名稱
改成
$dir = './';//文件夾名稱
E. php中如何從資料庫中讀取圖片
<?php
//將圖片存進資料庫再讀出,注意存儲圖片的欄位類型必須為blob
$user=』root』;
$password=』root』;
$db=』test』;
$connect=mysql_connect(『localhost』,$user,$password);
mysql_set_charset(『utf8′,$connect);
mysql_select_db($db);
$photo = 「0x」.bin2hex(file_get_contents(「./test.jpg」));
$sql=」INSERT INTO `test`.`test` (`photo`) VALUES ($photo);」;//$photo不需要用引號,切記
mysql_query($sql);
//$result=mysql_query(「SELECT *
//FROM `test`
//LIMIT 0 , 30〃);
//$img=mysql_fetch_array($result);
//echo $img['photo'];
?>
F. php獲取圖片解析度 顏色模式函數
$img_info = getimagesize('a.jpg');
print_r($img_info);
索引 0 包含圖像寬度的像素值,索引 1 包含圖像高度的像素值。索引 2 是圖像類型的標記:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。
channels 和 bits。channels 對於 RGB 圖像其值為 3,對於 CMYK 圖像其值為 4。bits 是每種顏色的位數。
G. php 驗證上傳的文件類型為圖片,並獲得文件的後綴名
以下是我上傳了一個圖片後顯示的 $_FILES['filename']的信息
[filename] => Array
(
[name] => Winter.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php2jw7QX
[error] => 0
[size] => 105542
)
其中type是文件類型的minitype 表示方法,例如普通的HTML的類型是text/html
如果你想用擴展名的方式判斷的話可以用以下代碼:
<?php
#允許的文件擴展名
$allowed_types = array('jpg', 'gif', 'png');
$filename = $_FILES['filename']['name'];
#正則表達式匹配出上傳文件的擴展名
preg_match('|\.(\w+)$|', $filename, $ext);
#print_r($ext);
#轉化成小寫
$ext = strtolower($ext[1]);
#判斷是否在被允許的擴展名里
if(!in_array($ext, $allowed_types)){
die('不被允許的文件類型');
}
?>
H. PHP如何讀取照片的exif信息實現代碼
<?php
/**
*讀取jpeg圖片的Exif信息
*$img為圖片路徑
*
*瓊台博客
*/
functiongetExif($img){
$exif=exif_read_data($img,'IFD0');
returnarray(
'文件名'=>$exif['FileName'],
'器材品牌'=>$exif['Make'],
'器材'=>$exif['Model'],
'快門'=>$exif['ExposureTime'],
'光圈'=>$exif['FNumber'],
'焦距'=>$exif['FocalLength'],
'感光度'=>$exif['ISOSpeedRatings']
);
}
讀取照片
<?php
$exifInfo=getExif('a.jpg');
echo'<pre>';
print_r($exifInfo);
echo'</pre>';
執行結果:
Array
(
[文件名]=>25556306.jpg
[器材品牌]=>NIKONCORPORATION
[器材]=>NIKOND3100
[快門]=>10/32000
[光圈]=>18/10
[焦距]=>350/10
[感光度]=>100
)
I. 你好,我遇到php讀取sql server中image類型的圖片數據的問題,現在想把資料庫中的圖片信息保存成文件
// 定義上傳目錄
$upload_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/';
// 創建目錄
if(!is_dir($upload_dir))mkdir($upload_dir);
// 二進制數據 $picture
$image_type = image_type_to_mime_type($picture));
// 取得圖片類型
$temp = explode('/', $image_type);
// 文件名
$uuid = rand(0,100).strtotime('+1 day');
$name = $uuid.$temp[1];
$path = $upload_dir.$name;
// 打開文件准備寫入
$file = fopen($path, 'w');
// 寫入
fwrite($file, $picture);
//關閉
fclose($file);
J. PHP圖片類型異常怎麼辦
摘要 首先從你的錯誤提示「圖片格式錯誤」來看,證明代碼進入了switch ($info[2]) { ......}的default分支,而且如果你沒有報其他E_WARNING或者E_NOTICE的話,那麼證明getimagesize函數有正確使用,那麼就需要查看傳入的參數了,也就是你傳入imageCut函數的第一個參數,這里也就是$userPath.$filename,建議你列印一下$userPath.$filename,看一下是否符合自己的需求;