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,看一下是否符合自己的需求;