Skriptas, naudojamas atsisiųsti video klipus iš Dailymotion.com, minėtas pirmoje dalyje:
Pirmiausia pasiimam Dailymotion puslapio su klipu adresą, pvz., http://www.dailymotion.com/video/x44ls3_suikoden-5-a-lot-to-make-up-for_videogames .
Iš šios nuorodos reikia ištraukti videoklipo ID, jis yra prieš ženklą _ , šiuo atveju x44ls3. Tai, kas yra į dešinę nuo ženklo _ , galima sėkmingai ištrinti, puslapio adresas laisvai gali būti ir http://www.dailymotion.com/video/x44ls3
Tarkim, visa nuoroda perduodama tiesiog su adresu, per GET, kaip kintamasis adr:
if(strpos($_GET[’adr’],”_”)!==false){
$idas=explode(”_”,$_GET[’adr’]);
$pr=explode(”/”,$idas[0]);
$kiek=count($pr)-1;
$id=$pr[$kiek];
}
else {
$pr=explode(”video/”,$_GET[’adr’]);
$id=$pr[1];
}
Kadangi adresas gali būti ir su _ , ir be, norint sužinoti klipo ID, tenka daryti kelis variantus.
Kai jau turim ID, jungiamės prie to puslapio su klipu (beje, sužinoti ID nėra būtina, čia nebent tik kaupiant informaciją apie atskirus klipus) ir ieškom kode slaptos info apie klipo adresą. Patogiausia tam panaudoti preg_match funkciją:
if($id){
$psl=@file_get_contents(’http://www.dailymotion.com/video/’.$id);
if($psl){
preg_match(”/%2Fget%2F(.*?)%40%40/”,$psl,$slaptas);
$adr=”http://www.dailymotion.com/get/”.urldecode($slaptas[1]);
$session = curl_init($adr);
curl_setopt($session, CURLOPT_HEADER, true);
curl_setopt($session, CURLOPT_USERAGENT, ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9′);
curl_setopt($session,CURLOPT_NOBODY, true);
curl_setopt($session, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($session, CURLOPT_TIMEOUT, 4);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
$error = curl_error($session);
$result = array( ‘header’ => ”);
if ( $error != “” )
{
$result[’curl_error’] = $error;
}
else
{
$hdr = curl_getinfo($session,CURLINFO_HEADER_SIZE);
$result[’header’] = substr($response, 0, $hdr);
preg_match(’/Location:(.*?)\n/’, $result[’header’], $matches);
}
}
pačios pabaigos nerašysiu, nes ji labai elementari - čia tik užvedimas ant kelio, ne pilnas skriptas (nors faktiškai 99%).