PHP如何获取FLV文件时间呢,答案是fopen文件后查看FLV文件是HEX数据,并转换为number。

复制代码 代码如下:<?phpfunctionBigEndian2Int($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,5,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;} ?>

直接使用get_flv_file_time(“你的FLV.flv”)即可。