最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP獲取youku視頻真實(shí)flv文件地址的方法

 更新時(shí)間:2014年12月23日 14:24:46   投稿:shichen2014  
這篇文章主要介紹了PHP獲取youku視頻真實(shí)flv文件地址的方法,可實(shí)現(xiàn)針對youku視頻真實(shí)地址的解析功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了PHP獲取youku視頻真實(shí)flv文件地址的方法。分享給大家供大家參考。具體分析如下:

有一站長要我?guī)椭鲆粋€可以自動測試出youku視頻網(wǎng)站的flv真實(shí)地址,下面我整理了一下午解決了此問題非常的不錯,大家可參考一下.

這個是借力打力,只是抓去朋友網(wǎng)的內(nèi)容,不過相當(dāng)好用,代碼如下:

復(fù)制代碼 代碼如下:
<?php
$videourl='http://v.youku.com/v_show/id_XMjA5MjQ0OTQ0.html';
function get_content($url ,$data){
 if(is_array($data)){
  $data = http_build_query($data, '', '&'); 
 }
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_URL,$url);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 $result = curl_exec($ch);
 return $result;
}
$str = get_content('http://share.pengyou.com/json.php?mod=usershare&act=geturlinfo',array('url'=>$videourl));
$str=json_decode($str);
var_dump($str);
?>

這個測試出來的只是swf文件并不是我們要的flv文件了,后來參考一站長的寫法進(jìn)行了改進(jìn),核心代碼如下:
復(fù)制代碼 代碼如下:
<?php 
function fetch_youku_flv($url){ 
    preg_match("#id_(.*?).html#",$url,$out); 
    $id=$out[1]; 
    $content=get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/'.$id); 
    $data=json_decode($content); 
    foreach($data->data[0]->streamfileids AS $k=>$v){ 
    $sid=getSid(); 
    $fileid=getfileid($v,$data->data[0]->seed); 
    $one=($data->data[0]->segs->$k); 
    if($k == 'flv' || $k == 'mp4') return "http://f.youku.com/player/getFlvPath/sid/{$sid}_00/st/{$k}/fileid/{$fileid}?K={$one[0]->k}"; 
    continue; 
    } 
}  
function get_curl_contents($url, $second = 5){ 
    if(!function_exists('curl_init')) die('php.ini未開啟php_curl.dll'); 
    $c = curl_init(); 
    curl_setopt($c,CURLOPT_URL,$url); 
    $UserAgent=$_SERVER['HTTP_USER_AGENT']; 
    curl_setopt($c,CURLOPT_USERAGENT,$UserAgent); 
    curl_setopt($c,CURLOPT_HEADER,0); 
    curl_setopt($c,CURLOPT_TIMEOUT,$second); 
    curl_setopt($c,CURLOPT_RETURNTRANSFER, true); 
    $cnt = curl_exec($c); 
    $cnt=mb_check_encoding($cnt,'utf-8')?iconv('gbk','utf-8//IGNORE',$cnt):$cnt; //字符編碼轉(zhuǎn)換 
    curl_close($c); 
    return $cnt; 

function getSid() { 
    $sid = time().(rand(0,9000)+10000); 
    return $sid; 

function getkey($key1,$key2){ 
    $a = hexdec($key1); 
    $b = $a ^ 0xA55AA5A5; 
    $b = dechex($b); 
    return $key2.$b; 

function getfileid($fileId,$seed) { 
    $mixed = getMixString($seed); 
    $ids = explode("*",$fileId); 
    unset($ids[count($ids)-1]); 
    $realId = ""; 
    for ($i=0;$i < count($ids);++$i) { 
    $idx = $ids[$i]; 
    $realId .= substr($mixed,$idx,1); 
    } 
    return $realId; 

function getMixString($seed) { 
    $mixed = ""; 
    $source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/:._-1234567890"; 
    $len = strlen($source); 
    for($i=0;$i< $len;++$i){ 
    $seed = ($seed * 211 + 30031) % 65536; 
    $index = ($seed / 65536 * strlen($source)); 
    $c = substr($source,$index,1); 
    $mixed .= $c; 
    $source = str_replace($c, "",$source); 
    }
    return $mixed; 

?>

調(diào)用方法,代碼如下:
復(fù)制代碼 代碼如下:
$url='http://v.youku.com/v_show/id_XMzg2OTQ3MjQw.html';
echo fetch_youku_flv($url);

訪問:

復(fù)制代碼 代碼如下:
http://xiaomizhou.net/demo/flv.php?url=http://v.youku.com/v_show/id_XMzg2OTQ3MjQw.html

輸出的結(jié)果是:

復(fù)制代碼 代碼如下:
http://f.youku.com/player/getFlvPath/sid/138035737110468_00/st/flv/fileid/03000201004F97EF4A2E350467A09DB266E872-5522-225F-DC45-40B4E1F9BE49?K=c2a4327df2bb5a65261d40ea

這個是可以直接下載的.

希望本文所述對大家的php程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP+JQuery+Ajax實(shí)現(xiàn)分頁方法詳解

    PHP+JQuery+Ajax實(shí)現(xiàn)分頁方法詳解

    這篇文章主要介紹了PHP+JQuery+Ajax實(shí)現(xiàn)分頁的方法,結(jié)合實(shí)例形式詳細(xì)分析了php數(shù)據(jù)查詢、分頁設(shè)置及ajax交互的相關(guān)技巧,并總結(jié)了分頁的相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-08-08
  • php生成rss類用法實(shí)例

    php生成rss類用法實(shí)例

    這篇文章主要介紹了php生成rss類用法,實(shí)例分析了使用rssbuilder.class.php類文件生成rss的技巧,需要的朋友可以參考下
    2015-04-04
  • PHP訪問數(shù)據(jù)庫集群的方法小結(jié)

    PHP訪問數(shù)據(jù)庫集群的方法小結(jié)

    這篇文章主要介紹了PHP訪問數(shù)據(jù)庫集群的方法,結(jié)合實(shí)例形式總結(jié)分析了三種常見的PHP訪問數(shù)據(jù)庫集群的技巧,需要的朋友可以參考下
    2016-03-03
  • PHP實(shí)現(xiàn)多張圖片上傳功能的示例代碼

    PHP實(shí)現(xiàn)多張圖片上傳功能的示例代碼

    這篇文章主要給大家介紹了關(guān)于如何利用PHP實(shí)現(xiàn)多張上傳圖片功能的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)PHP具有一定的幫助,需要的可以參考一下
    2022-06-06
  • PHP CURL post數(shù)據(jù)報(bào)錯 failed creating formpost data

    PHP CURL post數(shù)據(jù)報(bào)錯 failed creating formpost data

    我們有時(shí)候用curl上傳文件遇到failed creating formpost data的錯誤,那具體是如何產(chǎn)生,又如何進(jìn)行處理解決呢,下面我們就來探討下
    2016-10-10
  • php進(jìn)行ip地址掩碼運(yùn)算處理的方法

    php進(jìn)行ip地址掩碼運(yùn)算處理的方法

    這篇文章主要介紹了php進(jìn)行ip地址掩碼運(yùn)算處理的方法,涉及php字符串及網(wǎng)絡(luò)操作相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • PHP實(shí)現(xiàn)二維數(shù)組按某列進(jìn)行排序的方法

    PHP實(shí)現(xiàn)二維數(shù)組按某列進(jìn)行排序的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)二維數(shù)組按某列進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了php二維數(shù)組排序的技巧,涉及array_multisort函數(shù)的使用方法,需要的朋友可以參考下
    2016-11-11
  • php如何實(shí)現(xiàn)只替換一次或N次

    php如何實(shí)現(xiàn)只替換一次或N次

    這篇文章主要介紹了php如何實(shí)現(xiàn)只替換一次或只替換N次,通過一個簡單的例子引入主題,感性的朋友可以參考一下
    2015-10-10
  • PHP技術(shù)開發(fā)技巧分享

    PHP技術(shù)開發(fā)技巧分享

    本文檔的閱讀對象是有一定經(jīng)驗(yàn)的PHP程序員,文檔中將介紹在PHP開發(fā)中的一些開發(fā)技巧,希望能對讀者有一定的啟發(fā)。
    2010-03-03
  • php 正則表達(dá)式小結(jié)

    php 正則表達(dá)式小結(jié)

    正則表達(dá)式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。
    2009-08-08

最新評論

六枝特区| 南澳县| 蓝田县| 闻喜县| 彭泽县| 海晏县| 泉州市| 尤溪县| 开阳县| 康马县| 紫金县| 恩平市| 东平县| 乌拉特后旗| 宜都市| 鹤峰县| 开平市| 灯塔市| 千阳县| 太和县| 桐庐县| 库车县| 宜章县| 盖州市| 许昌县| 修文县| 德惠市| 凯里市| 孟津县| 武邑县| 城口县| 横峰县| 凉山| 彭泽县| 阳谷县| 阿拉善左旗| 云安县| 云林县| 乌拉特前旗| 广饶县| 本溪市|