PHP提取連接批量下載

2014年年初的時候,曾經受委託完成一個視頻網站,那時最大的技術障礙是一個大視頻好比500MB,在一個帶寬環境不怎麼快的服務器(好比1Mbps)上提供播放的問題。php

這裏會遇到兩種狀況,第一種狀況是客戶機加載完整個視頻,而後播放。第二種狀況是客戶機正在加載這個視頻,視頻卡在頁面上,沒法播放。正則表達式

因而,我就研究了一下目前幾大主流的視頻網站的播放技術,發覺絕大多數網站都使用了一種視頻切片的技術,把大視頻切成小片,而後分段加載進來。由於小片的視頻是徹底能夠在幾秒內所有加載的,因此若是用戶移動進度條,是能夠實現「移到哪裏就能夠立刻看哪裏」。數組

固然,後面由於實力有限,並無作視頻分片,而是用了Flash播放器把項目「馬馬虎虎」應付了,具體技術細節也並不清楚。bash

今天,我在網上看到了一個很好的視頻,用地址解析後發現視頻被分割成了300多片,因而我用PHP的正則表達式批量下載了連接地址服務器

$path="*";

$str='';
if(file_exists($path)){
	$str=file_get_contents($path);
}

$a=[];
preg_match_all('/https:\S*.mp4/',$str,$a);
var_dump($a);

這裏已經把連接地址都存放進了數組$a函數

而後使用file_put_contents函數下載這個URL資源工具

for($i=0;$i<count($a[0]);++$i){
	$content = file_get_contents($a[0][$i]);
	file_put_contents('download/'.$i.'.mp4',$content);
}

把視頻都下載到一個文件夾後,就開始合併,合併只須要用最簡單的命令行工具網站

copy /b *.mp4 new.mp4
相關文章
相關標籤/搜索