PHP实现获取FLV文件的时间
发布时间:2020-12-13 02:24:24 所属栏目:PHP教程 来源:网络整理
导读:《PHP实战:PHP实现获取FLV文件的时间》要点: 本文介绍了PHP实战:PHP实现获取FLV文件的时间,希望对您有用。如果有疑问,可以联系我们。 PHP实战 PHP如何获取FLV文件时间呢,谜底是fopen文件后查看FLV文件是HEX数据,并转换为number. 代码如下: ?php functio
《PHP实战:PHP实现获取FLV文件的时间》要点: PHP实战PHP如何获取FLV文件时间呢,谜底是fopen文件后查看FLV文件是HEX数据,并转换为number.
代码如下:
<?php functionBigEndian2Int($byte_word,$signed=false) { ??? $int_value??? =0; ??? $byte_wordlen=strlen($byte_word); ??? for($i=0;$i<$byte_wordlen;$i++){ ??????? $int_value+=ord($byte_word{$i})*pow(256,($byte_wordlen-1-$i)); ??? } ??? if($signed){ ??????? $sign_mask_bit=0x80<<(8*($byte_wordlen-1)); ??????? if($int_value&$sign_mask_bit){ ??????????? $int_value=0-($int_value&($sign_mask_bit-1)); ??????? } ??? } ??? return$int_value; } ? functiongetTime($name) { ??? if(!file_exists($name)){ ??????? return; ??? } ??? $flv_data_length=filesize($name); ??? $fp????????????? =@fopen($name,'rb'); ??? $flv_header????? =fread($fp,5); ??? fseek($fp,5,SEEK_SET); ??? $frame_size_data_length? =BigEndian2Int(fread($fp,4)); ??? $flv_header_frame_length=9; ??? if($frame_size_data_length>$flv_header_frame_length){ ??????? fseek($fp,$frame_size_data_length-$flv_header_frame_length,SEEK_CUR); ??? } ??? $duration=0; ??? while((ftell($fp)+1)<$flv_data_length){ ??????? $this_tag_header=fread($fp,16); ??????? $data_length???? =BigEndian2Int(substr($this_tag_header,3)); ??????? $timestamp?????? =BigEndian2Int(substr($this_tag_header,8,3)); ??????? $next_offset???? =ftell($fp)-1+$data_length; ??????? if($timestamp>$duration){ ??????????? $duration=$timestamp; ??????? } ??????? fseek($fp,$next_offset,SEEK_SET); ??? } ??? fclose($fp); ??? return$duration; } ? functionget_flv_file_time($time) { $time=getTime($time); ??? $num=$time; ??? $sec=intval($num/1000); ??? $h?? =intval($sec/3600); ??? $m?? =intval(($sec%3600)/60); ??? $s?? =intval(($sec%60)); ??? $tm? =$h.':'.$m.':'.$s; ??? return$tm; } ? ?> PHP实战间接使用get_flv_file_time(“你的FLV.flv”)即可. 《PHP实战:PHP实现获取FLV文件的时间》是否对您有启发,欢迎查看更多与《PHP实战:PHP实现获取FLV文件的时间》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |