Autor Zpráva
davef6
Profil
Dobrý den, mám tuto funkci

function processURL($url){
    $url=str_replace('&','&',$url);
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_HEADER,true);
	curl_setopt ($ch,CURLOPT_RANGE,"0-50");
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $xml = curl_exec($ch);
    curl_close ($ch);
    $mp3 = substr_count($xml,"audio/mpeg");
	if ($mp3 == 0) return false;
	else return true;
}


která kontroluje mp3, ale když je třeba v databázi uloženo http://m.peciak.wrzuta.pl/sr/f/2Kg4gr8I2y4/lionel_richie_-_say_you_say_me.mp3 a při vložení do url dojde k přesměrování na http://c.wrzuta.pl/wa4303/bc2f9ad60015db1349d10a11/0/lionel%20richie%20-%20say%20you%2C%20say%20me.mp3

tak to tuto mp3 nahlásí jako nefunkční, změním li na ten druhý link je po problému. Proto se ptám zda li lze nějak upravit tu funkci, aby odhalila funkčnost mp3 i takovéhoto přesměrování.

díky za odpovědi
Majkl578
Profil
Zajímavé, pokud to dobře chápu, má to vrátit true pokud existuje.

Tento kód:
var_dump(processURL('http://m.peciak.wrzuta.pl/sr/f/2Kg4gr8I2y4/lionel_richie_-_say_you_say_me.mp3'));

mi vrací true.

Dump proměnné $xml (pouze hlavičky, binární data nepřikládám) vrací:
HTTP/1.1 301 Moved Permanently
Date: Sat, 07 Nov 2009 23:34:44 GMT
Server: Apache/2.0.59 (Unix) PHP/5.2.5
Location: http://c.wrzuta.pl/wa4303/bc2f9ad60015db1349d10a11/0/lionel%20richie%20-%20say%20you%2C%20say%20me.mp3
Content-Length: 310
Connection: close
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 206 Partial content
Date: Sat, 07 Nov 2009 23:34:43 GMT
x-sds-request-id: 08D32CC4
x-sds-rp: f14
ETag: "165b7e3c1c53fbe015ffd4e4ad928583"
Content-Range: 0-50/3885797
Last-Modified: Mon, 30 Mar 2009 18:06:09 GMT
Content-Type: audio/mpeg3
Content-Length: 51
Server: sds 1.2
davef6
Profil
když to udělám takto

function processURL($url){
    $url=str_replace('&','&',$url);
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_HEADER,true);
	curl_setopt ($ch,CURLOPT_RANGE,"0-50");
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $xml = curl_exec($ch);
    curl_close ($ch);
    return $xml;
}

var_dump(processURL("http://m.peciak.wrzuta.pl/sr/f/2Kg4gr8I2y4/lionel_richie_-_say_you_say_me.mp3"));
?>


tak mi to teď vrací pouze toto

HTTP/1.1 301 Moved Permanently Date: Sun, 08 Nov 2009 09:38:35 GMT Server: Apache/2.0.59 (Unix) PHP/5.2.5 Location: http://c.wrzuta.pl/wa4303/bc2f9ad60015db1349d10a11/0/lionel%20richie%20-%20say%20you%2C%20say%20me.mp3 Content-Length: 310 Connection: close Content-Type: text/html; charset=iso-8859-1
Moved Permanently

The document has moved here.


jak mohu docílit, aby mi to vracelo i toto

HTTP/1.1 206 Partial content
Date: Sat, 07 Nov 2009 23:34:43 GMT
x-sds-request-id: 08D32CC4
x-sds-rp: f14
ETag: "165b7e3c1c53fbe015ffd4e4ad928583"
Content-Range: 0-50/3885797
Last-Modified: Mon, 30 Mar 2009 18:06:09 GMT
Content-Type: audio/mpeg3
Content-Length: 51
Server: sds 1.2
Majkl578
Profil
To vypadá na nějakou odlišnost ve verzích php nebo jeho nastavení. Testoval jsem to na verzi 5.2.11.
davef6
Profil
no mám tu php 5.2.3

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: