【php】获取土豆,优酷在内的四个视频大站的视频截图以及flash文件地址

function getFlashImg($url, $host){    
  $flash_url = explode(“.”,$url);
  switch($host){
   case “tudou.com”:
    $tinfo = explode(‘/’, $url);
    if(in_array(‘v’,$tinfo)){
     $file_url = $url;
     $page_url = ‘http://www.tudou.com/programs/view/’.$tinfo[count($tinfo)-2].’/';
    }elseif(in_array(‘view’,$tinfo)){
     $tinfo = explode(‘view’,$url);
     $file_url = ‘http://www.tudou.com/v’.$tinfo[1];
     $page_url = $url;
    }else{
     $file_url = $url;
     $page_url = $url;
    }
    $content=file_get_contents($page_url); //获取html内容
    if(preg_match(‘/thumbnail = \’(.*)\’/',$content,$match))
     $img_link = $match[1];
    break;
   case “youku.com”:
    if($flash_url[count($flash_url)-1]==’swf’){
     $tinfo = explode(‘/’,$url);
     $file_url = $url; //源文件地址
     $page_url = ‘http://v.youku.com/v_show/id_’.$tinfo[count($tinfo)-2].’.html’; //页面地址
    }else{
     if(strstr( $url, ‘id_’))
      $tinfo = explode(‘id_’, $url);
     else
      $tinfo = explode(‘v_playlist/’, $url);
     $tmpinfo = explode(‘.’,$tinfo[1]);
     $file_url = ‘http://player.youku.com/player.php/sid/’ . $tmpinfo[0] . ‘/v.swf’;
     $page_url = $url;
    }
    $content = file_get_contents($page_url); //获取html内容
    preg_match(‘/<a[^>]*id=”download”[^>]*>/si’,$content,$match);
    //echo “get”.$match[0];
    $down_load_link = explode(‘|’,$match[0]);
    //print_r($down_load_link);
    $img_link = $down_load_link[8];
    break;
   case “ku6.com”:
    if(in_array(‘http://v’,$flash_url)){
     $info = explode(‘/’,$flash_url[2]);
     $file_url = ‘ http://player.ku6.com/refer/’.$info[3].’/v.swf’;
     $page_url = $url;
    }else{
     $info = explode(‘refer’,$flash_url[2]);
     $tempinfo = explode(‘/’,$info[1]);
     $file_url = $url;
     $page_url = ‘ http://v.ku6.com/show/’.$tempinfo[1].’.html’;
    }
    $content = file_get_contents($page_url); //获取html内容
    preg_match(“/<span class=\”s_pic\”>(.*)<\/span>/Ui”,$content,$match);
    $img_link = $match[1];
    break;
   case “56.com”:
    if($flash_url[count($flash_url)-1]==’swf’){
     $tinfo = explode(‘/’,$url);
     $file_url = $url; //源文件地址
     $page_url = ‘http://www.56.com/u43/’.$tinfo[count($tinfo)-2].’.html’; //页面地址
    }else{
     //if(strstr( $url, ‘v_’))
     $tinfo = explode(‘v_’, $url);
     /* else
      $tinfo = explode(‘v_playlist/’, $url); */
     $tmpinfo = explode(‘.’,$tinfo[1]);
     $file_url = ‘http://player.56.com/v_’ . $tmpinfo[0].”.swf”;
     $page_url = $url;
    }
    $content = file_get_contents($page_url); //获取html内容
    preg_match(‘/”img”:”(.*)”/’,$content,$match);
    //echo “get”.$match[0];
    //$down_load_link = explode(‘|’,$match[1]);
    //print_r($down_load_link);
    $img_link = stripslashes($match[1]);
    break;
   default:
    $page_url = ”;
    $img_link = ”;
    //error_page(“本站仅支持【优酷、酷6、土豆网。】”);
    //exit;
    break;
   }
   $link_array['page_link'] = $page_url;
   $link_array['file_link'] = $file_url;
   
   $link_array['img_link'] = isset($img_link)?$img_link:null;
   //   return $link_array;
   return $link_array;
   
  /*if(in_array(‘youku’,$flash_url)){// youku 视频
   
  }else if(in_array(‘tudou’,$flash_url)){//tudou 视频
   
  }else if (in_array(‘ku6′, $flash_url)){//ku6 视频
   

  }else if (in_array(‘joy’, $flash_url)){//激动网视频
   if($flash_url[count($flash_url)-1]==’swf’){
    $tinfo = explode(‘/’, $url);
    $tempinfo = explode(‘.’,$tinfo[count($tinfo)-1]);
    $temp_url = explode(‘_’,$tempinfo[0]);
    $file_url = $url;
    $page_url = ‘ http://you.joy.cn/video/’.$temp_url[0].’.htm’;
   }else{
    $tinfo = explode(‘.’,$flash_url[count($flash_url)-1]);
    $file_url = ‘ http://client.joy.cn/flvplayer/’.$tinfo[0].’_1_0_1.swf’;
    $page_url = $url;
   }      
   $content = file_get_contents($page_url); //获取html内容
   preg_match_all(“/Cover:\”(.*?)\”,/i”,$content,$match); 
   $img_link = $match[1][0];
  }
  else{
   
  }*/

 }

支持土豆,优酷,酷六,五六四个网站,flash文件与网页文件的相互转换,绝大多数网址都没有问题。

【php】获取土豆,优酷等绝大多数视频网站的视频标题的函数

function get_title($link){
  $txt = file_get_contents($link);
  $utf = “/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/”;
  //用正则取得视频名称   
  if(preg_match(“/<title>(.*?)_.*<\/title>/”, $txt , $match_title)){
   $title=$match_title[1];
   //if(isset($match_title[1])) return $match_title[1]; //取得视频标题
  }//用正则取得视频名称   
  elseif(preg_match(“/<title>(.*?)-.*<\/title>/”, $txt , $match_title)){
   
   //print_r($match_title);
   $title=$match_title[1];
   //if(isset($title)) return $title; //取得视频标题
  }
  else{
   preg_match(“/<title>(.*?)<\/title>/”, $txt , $match_title);
   $title=$match_title[1];
  }
  //if(preg_match_all($utf,$title))
  /* $title=iconv(“GB2312″,”UTF-8″,$$match_title[1]); */
  if(!preg_match(“/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_\s]+$/”,$title))
   $title=iconv(‘utf-8′, ‘gbk’,$title);
  return $title;
 }

解决变编码问题,不同形式的标题,基本都可以匹配,标题为gbk编码。