当前位置:首页 » 编程语言 » php获取文件的类型

php获取文件的类型

发布时间: 2023-11-22 17:25:40

php通过finfo判断excel文件是什么格式

excel 93-2003后缀为 .xls 的 文件格式是 application/vnd.ms-excel

excel2007格式后缀是 .xlsx 的文件格式是application/vnd.openxmlformats-officedocument.spreadsheetml.sheet


php上传文件,可以通过内置的系统函数$_FILES 获取文件的信息。


$_FILES数组内容如下: (其中upfile为获取的表单名称)
$_FILES['upfile']['name'] 客户端文件的原名称。
$_FILES['upfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['upfile']['size'] 已上传文件的大小,单位为字节。
$_FILES['upfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名


<?php
if(isset($_POST['sub'])){
echo"文件名:".$_FILES['upfile']['name']."<br>";
echo"文件类型:".$_FILES['upfile']['type'];
}

?>
<formenctype="multipart/form-data"method="post"action="f.php">
<inputtype="file"name="upfile"/>
<inputtype="submit"name="sub"value="上传"/>
</form>


上传 。xls文件 返回的信息为

文件名:导入收藏证书模板.xls
文件类型:application/vnd.ms-excel


② 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('不被允许的文件类型');
}
?>

③ php读取ini配置文件属性

ini的内容格式如下,请根据自己的INI,格式修改下段程序.
autostart = false
font_size = 12
font_color = red
===================
function get_ini_file($file_name = "demo.ini"){
$str=file_get_contents($file_name);//读取ini文件存到一个字符串中.
$ini_list = explode("\r\n",$str);//按换行拆开,放到数组中.
$ini_items = array();
foreach($ini_list as $item){
$one_item = explode("=",$item);
if(isset($one_item[0])&&isset($one_item[1])) $ini_items[trim($one_item[0])] = trim($one_item[1]); //存成key=>value的形式.
}
return $ini_items;
}

function get_ini_item($ini_items = null,$item_name = ''){//获得INI条目的值.
if(empty($ini_items)) return "";
else return $ini_items[$item_name];
}

$ini_items = get_ini_file("demo.ini");

echo get_ini_item($ini_items,'font_size'); //输出获得的值.

④ 用php读取txt内容

$file
=
"t.txt";//要读的文本
$fp
=
@fopen($file,
'r');//以直读(r)方式打开文件【注意,是r不是a,具体参考手册fopen函数】
$content
=
@fread($fp,
filesize($file));//读取全部(filesize($file))内容
fclose($fp);//关闭文件
$content
=
preg_replace('/[\n\r]/is',
'<br/>',
$content);//将换行符换成HTML标签的换行
//你上例中的123456789会换成123<br/>456<br/>789
echo
$content;//输出文件

⑤ PHP 没有后缀名的文件怎么获取后缀

我给你思路吧

首先没有后缀,那只能通过文件头来判断了

functiongetFileType($file){
if(!empty($file)){
//打开文件
$filehead=fopen($file,'r');
//读取文件2字节
$bin=fread($filehead,2);
fclose($filehead);
//二进制字符串对数据进行解包
$data=unpack('C2chars',$bin);
$type_code=intval($data['chars1'].$data['chars2']);
switch($type_code){
case7790:
$fileType='exe';
break;
case7784:
$fileType='midi';
break;
case8075:
$fileType='zip';
break;
case8297:
$fileType='rar';
break;
case255216:
$fileType='jpg';
break;
case7173:
$fileType='gif';
break;
case6677:
$fileType='bmp';
break;
case13780:
$fileType='png';
break;
default:
$fileType='unknown';
break;
}
return$fileType;

}


-

⑥ php中怎么判断格式的文件类型

/**
*获取文件类型
*@paramstring$filename文件名称
*@returnstring文件类型
*/
functiongetFileType($filename){
returnsubstr($filename,strrpos($filename,'.')+1);
}

/**
*获取文件类型2
*@paramstring$filename文件名称
*@returnstring文件类型
*/
functiongetFileType2($filename){
returnstrtolower(pathinfo($filename)['extension']);
}

/**
*获取文件类型3
*@paramstring$filename文件名称
*@returnstring文件类型
*/
functiongetFileType3($filename){
return$exten[count($exten=explode('.',$filename))-1];
}

/**
*获取文件类型4
*@paramstring$filename文件名称
*@returnstring文件类型
*/
functiongetFileType4($filename){
$exten=explode('.',$filename);
returnend($exten);
}

⑦ php 怎样读取excel表格内容 - 技术问答

常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。

1. 以.csv格式读取

将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。

优点:跨平台,效率比较高、可以读写。

缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。

PHP有自带的分析.csv函数:fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )

handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。

length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。

delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。

enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。

fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。

注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。

当然也可以自己手动分析字符串。

还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。

2. ODBC链接数据源

优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。

缺点:值支持windows服务器

3. PHP自定义类

优点:跨平台。某些类支持写操作。支持.xls二进制文件

常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。

phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。

该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。

不过我下载回来的 (版本 2009-03-30),有两点要注意:

reader.php 中的下面这行要修改

将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;

改为 require_once ‘oleread.inc’;

example.php 中

修改 $data->setOutputEncoding(’CP1251′);

为 $data->setOutputEncoding(’CP936′);

example2.php 中

修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));

为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));

不然中文会有问题。

繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。

修改 $data->read(’jxlrwtest.xls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了。

⑧ php如何读取某目录下的所有同类型文件

PHP使用函数opendir、readdir、closedir来实现文件夹的操作,下面以一个最基本的例子来作为入门介绍:

<?php
//获取某目录下所有文件、目录名(不包括子目录下文件、目录名)
$dir='C:/Users/';
$handler=opendir($dir);
while(($filename=readdir($handler))!==false){//务必使用!==,防止目录下出现类似文件名“0”等情况
if($filename!="."&&$filename!=".."){
$files[]=$filename;
}
}
}
closedir($handler);

//打印所有文件名
foreach($filensas$value){
echo$value."<br/>";
}
?>

上面的代码显示c:users文件夹里面的所有的文件和文件夹,忽略.和..两个特殊含义的文件夹,程序把所有文件和文件夹名称扫描保存到数组里面,然后显示。


如果你需要对文件进行过滤,例如只处理*.xls文件,可以在过滤.和..的地方添加代码。例如:

if (substr($filename,-4)=='.xls'){


当你理解了上面的代码之后,你就能编写扫描子文件夹、以及子 文件夹里面文件的方法了。基本思路是使用递归,下面我给出一个简单的例子:

functionget_allfiles($path,&$files){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!="."&&$file!=".."){
get_allfiles($path."/".$file,$files);
}
}
$dp->close();
}
if(is_file($path)){
$files[]=$path;
}
}

functionget_filenamesbydir($dir){
$files=array();
get_allfiles($dir,$files);
return$files;
}

$filenames=get_filenamesbydir("c:/users/");
//打印所有文件名,包括路径
foreach($filenamesas$value){
echo$value."<br/>";
}

这个例子使用dir类来编写,实际上用opendir、readdir、closedir来写也是相同的。

热点内容
哪些汽车品牌配置防爆胎 发布:2025-01-26 17:39:42 浏览:616
怎么更改苹果密码怎么办 发布:2025-01-26 17:15:55 浏览:272
char在c语言中是什么意思 发布:2025-01-26 16:54:13 浏览:68
sqllabview 发布:2025-01-26 16:53:11 浏览:647
如何成为安卓用户 发布:2025-01-26 16:41:23 浏览:966
宋祖儿小学生编程 发布:2025-01-26 16:39:35 浏览:632
杀手3重庆如何得到密码 发布:2025-01-26 16:27:10 浏览:803
小米5传文件夹 发布:2025-01-26 16:10:58 浏览:539
哪里可以看无线密码 发布:2025-01-26 16:04:41 浏览:264
代码分析编译器 发布:2025-01-26 15:56:34 浏览:678