PHP實(shí)現(xiàn)獲取FLV文件的時(shí)間_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP實(shí)現(xiàn)Javascript中的escape及unescape函數(shù)代碼分享
      這篇文章主要介紹了PHP實(shí)現(xiàn)Javascript中的escape及unescape函數(shù)代碼分享,本文給出兩個(gè)實(shí)現(xiàn)版本,需要的朋友可以參考下 這個(gè)類相當(dāng)好用.作用么,PHP做JSON傳遞GBK字符,比如中文,日文,韓文神馬的Unicode最合適不過了.. ? google code 上找到的另外一個(gè)類似腳本 ?

       這篇文章主要介紹了PHP實(shí)現(xiàn)獲取FLV文件的時(shí)間,本文直接給出實(shí)現(xiàn)代碼和使用方法,需要的朋友可以參考下

         

      PHP如何獲取FLV文件時(shí)間呢,答案是fopen文件后查看FLV文件是HEX數(shù)據(jù),并轉(zhuǎn)換為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,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”)即可。

       

      分享:Laravel中使用阿里云OSS Composer包分享
      這篇文章主要介紹了Laravel中使用阿里云OSS Composer包分享,本文講解其使用方法,文件下載請前往文件中的github地址,需要的朋友可以參考下 阿里云提供了基于命名空間的 V2 版 SDK,但是文檔不是很完整,使用門檻比較高,于是我封裝了一個(gè) Composer 包:https://github.c

      來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2015-02-10
      相關(guān)PHP教程