Cytat(matird @ 19.08.2011, 22:25:08 )

Witaj, oba kody uruchamiam osobno, w osobnych plikach. Nie mam pojęcia skąd ten problem, dlatego przerzucam się na cURL. Strony pobiera, ALE:
-mój serwer ma lokalizacje niemiecką, więc serwis youtube otwiera się tak jakby 'w wersji niemieckiej'
-zmieniłem język i useragenta - wszystko super, ale youtube po IP i tak wie ze serwer niemiecki bo niektóre klipy blokuje z powodu niedostępności w danym kraju.
-pomyślałem o proxy - to powinno rozwiązac problem, ale niestety nie chce działać, proszę spojrzeć na kod:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $adres);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, FALSE);
curl_setopt($curl, CURLOPT_PROXY, 'przykladowy_proxy:80');
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3');
$str = curl_exec($curl);
curl_close($curl);
z proxy - nic nie wchodzi, ale nie wiem czy to problem dobrania dobrego serwera
bez proxy - wchodzi stronka youtube z informacja, ze w tym kraju (niemcy) zostalo zablokowane wyswietlanie klipu
Macie jakies pomysly ?
@edit: przykladowy link:
http://www.youtube.com/watch?v=ZareCmy5BWQ (niech beda Pink Floydzi)
No cóż, po raz kolejny jestem zmuszony sam odpowiadać sobie na pytanie...
Poniżej skrypcik, który napisałem dla sprawdzania kilku proxy:
$tab = array('178.218.226.70:8080', '178.218.225.232:8080',
'178.218.226.70:8080',
'77.245.242.230:8080',
'82.177.67.1:8080'//,
//'212.182.64.86:3128'
);
$best_time = 100;
foreach ($tab as $proxy){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3');
$headers = array('Accept-Language: pl,en-us;q=0.7,en;q=0.3', 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
//curl_setopt($ch, CURLOPT_TIMEOUT,5);
curl_exec($ch);
if(curl_errno($ch))
{
echo 'Proxy: '.$proxy.' Błąd: ' . curl_error
($ch).'<br/>'; }
else
{
$info = curl_getinfo($ch);
if ($info['total_time'] < $best_time) {
$best_time = $info['total_time'];
$best_proxy = $proxy;
}
if ($info['total_time'] < 4) {
echo '<div style="color:green">Proxy: '.$proxy.' Czas rządania: ' . $info['total_time'] . ' sek. dla adresu: ' . $info['url'].'<br/></div>'; //echo curl_exec($ch);
//return 0;
}else{
echo 'Proxy: '.$proxy.' Czas rządania: ' . $info['total_time'] . ' sek. dla adresu: ' . $info['url'].'<br/>'; }
}
curl_close($ch);
}
echo '<br/>Zapisano do bazy proxy: '.$best_proxy.' o czasie odpowiedzi: '.$best_time.' s';
Jak zwykle nie mam za bardzo komu dziękować za pomoc, jednakże podziękuje przynajmniej za zaglądnięcie tutaj...
pozdrawiam, Mateusz Tofilski