PHP如何判断是不是是MP3文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP如何判断是不是是MP3文件相关的知识,希望对你有一定的参考价值。

有没有什么函数可以用来判断是否是MP3类型?不要通过后缀判断

谢谢

php判断是否是mp3其实就是判断文件的MIME类型,其中mp3的MIME类型为 audio/mpeg 

以下几种方法可以获得文件的MIME类型,得到文件类型后就可以进行判断了:

1、mime_content_type()函数判断获取文件类型,然后判断是否是mp3

mime_content_type返回指定文件的MIME类型,用法:

echo mime_content_type('xxx.mp3') ."n";
echo mime_content_type('test.php');
// 输出:
audio/mpeg
text/plain

但是php 5.3.0已经将该函数废弃。如果仍想使用此函数,那么可以对php进行配置启用magic_mime扩展。 

2、php Fileinfo 获取文件类型(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、php获取上传文件类型

如果使用php上传文件,检测上传文件的MIME类型,则可以使用全局变量$_FILES['uploadfile']['type'],由客户端的浏览器检测获取文件MIME类型。

得到MIME类型后,再判断是不是audio/mpeg 即可

参考技术A $file_info = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($file_info, $filename);
finfo_close($file_info);

通过文件MIME来判断

php 判断是不是包含

要是指的是判断一个字符串在另一个字符串是否包含?
方法一、使用strstr,strstr返回需要判断是否被包含的字符开始到结束的字符串,如果没有返回值,则不包含。
举例,判断是否包含字符“#”:
<?php
$str='abc#defg';
$in=strstr($str,'#');
echo $in;//输出结果为:#defg
?>
方法二、使用stristr, 它的用法和strstr的完全一样.唯一的区别是stristr不区分大小写,而strstr区分大小写。可以根据实际情况是否区分大小写来使用。
方法三、使用strpos,但它对中文件的支持不是很好,它的返回值为boolean型,也就是true和false(真和假)。执行速度比stristr和strstr都快,strpos函数中有一个参数用于指定判断的位置,默认为空,即判断整个字符串。
下面看例子:
<?php
$str='bde';
$in='b';
$output=strpos($str,$in);
?>
方法四、将字符串用explode来拆分数组再判断。如下:
function chstr($str,$in)
$tmparr = explode($in,$str);
if(count($tmparr)>1)
return true;
else
return false;


$str='abc#defg';
$in='#';//判断是否包含#这个字符
$bh=chstr($str,$in);
if($bn)
echo '字符串'.$str.'包含'.$in;
else
echo '字符串'.$str.'不包含'.$in;
参考技术A 其实如果不是特别复杂的字符判断,不建议用正则,php的字符串函数完全可以实现,strpos()例如:
$x = "abc张三klllk";
if(strpos($x,"张三") > 0)
echo "ok";

当然这样会有一个问题,就是当"张三"出现在字符串开头的时候,结果也为0,
这时候我们就要在字符串前加一特殊字符来判断。
$x="张三abc";
$x1 = "%**#".$x;
if(strpos($x1,"张三") > 0)
echo "ok";
本回答被提问者和网友采纳
参考技术B if(strspn("aabbcc","aa")>0)echo "aabbcc包含aa";

参考技术C 数组用in_array,字符串可以用strrpos 参考技术D include_once 或者 require_once 第5个回答  2014-02-13 能补充下问题不?
都不知道你问的是什么!
第6个回答  2014-02-14 不懂你说的是什么意思

以上是关于PHP如何判断是不是是MP3文件的主要内容,如果未能解决你的问题,请参考以下文章

PHP怎么读取php所在文件夹下的图片和mp3文件,并且显示出来

python进行mp3格式判断

如何在一个结束后加入 2 个 mp3 文件

php中的mp3 id3tag编码

如何检测文件是不是使用 mp3PRO 编码?

PHP/jQuery - 当 PHP 语句为真时如何使用 jQuery 播放 mp3 音频文件