• 09-08-2010, 10:32:08
    #1
    Merhaba arkadaşlar

    Telekomun yasağından dolayı proxy ile karşı siteden resim/video çekmek zorundayım. Sitedede çekilen proxy üzerinden gösterilecek. Aşşağıdaki şekilde bir kod hazırladım.

            $url = 'http://siteadresi.com';
            $ref = 'referer';
            $ch = curl_init();
            curl_setopt($ch,CURLOPT_URL,$url);
            curl_setopt($ch,CURLOPT_HEADER,0);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch,CURLOPT_REFERER,$ref);
            curl_setopt($ch,CURLOPT_PROXY,'221.130.17.235');
            curl_setopt($ch,CURLOPT_PROXYPORT,'80');
            curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)");
            $data = curl_exec($ch);
            curl_close($ch);
            echo htmlspecialchars($data); 
    $site = $_GET['v'];
    Ancak malum bu kodla sayfanın kaynağını çekiyor. Ben nasıl yaparımda örneğin resim, video v.s dosyaları direkt olarak çekebilirim ?
  • 09-08-2010, 12:51:14
    #2
    resim.php
    <?php
    		ob_start();
            $ref = 'referer';
            $ch = curl_init();
            curl_setopt($ch,CURLOPT_URL,$_GET['resim']);
            curl_setopt($ch,CURLOPT_HEADER,0);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch,CURLOPT_REFERER,$ref);
            curl_setopt($ch,CURLOPT_PROXY,'221.130.17.235');
            curl_setopt($ch,CURLOPT_PROXYPORT,'80');
            curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)");
            $data = curl_exec($ch);
            curl_close($ch);
    		$length = strlen($data);
    		header('Last-Modified: '.date('r'));
    		header('Accept-Ranges: bytes');
    		header('Content-Length: '.$length);
    		header('Content-Type: image/jpeg');
    		print($data);
    		ob_end_flush();
    ?>
    kullanımı :
    <img src="resim.php?resim=resim adresi" />
    resimler için bunu kullanabilirsin
  • 09-08-2010, 16:24:50
    #3
    ob startı çağırmaya rağmen headers already sent hatası veriyor. Ve resim gözükmüyor. Benmi yanlış yaptım acaba ?
  • 09-08-2010, 16:32:25
    #4
    caGATay_48 adlı üyeden alıntı: mesajı görüntüle
    ob startı çağırmaya rağmen headers already sent hatası veriyor. Ve resim gözükmüyor. Benmi yanlış yaptım acaba ?
    resim.php yi ayrı bir dosya olarak yarattın mı ?
    eğer diğer php kodların içine ekleyip çalıştırmayı denersen çalışmayacaktır...
  • 09-08-2010, 16:38:15
    #5
    http://94.121.12.52/resim

    r phpde resim kodu resim.php de curl kodu var.
  • 09-08-2010, 17:04:27
    #6
    caGATay_48 adlı üyeden alıntı: mesajı görüntüle
    http://94.121.12.52/resim

    r phpde resim kodu resim.php de curl kodu var.
    bnm localde sorunsuz çalışmakta :S sebebini anlayamadım bende
  • 09-08-2010, 17:14:40
    #7
    Fikri olan yokmu arkadaşlar
  • 09-08-2010, 21:49:31
    #8
    Kodu şu şekilde çalıştırmayı başardım. ( hataları gizleyerekte olsa )

       <?php
    		error_reporting(0);
    		ob_start();
            $url = $_GET['v'];
            $ref = 'referer';
            $ch = curl_init();
            curl_setopt($ch,CURLOPT_URL,$url);
            curl_setopt($ch,CURLOPT_HEADER,0);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch,CURLOPT_REFERER,$ref);
            curl_setopt($ch,CURLOPT_PROXY,'218.201.21.177');
            curl_setopt($ch,CURLOPT_PROXYPORT,'80');
            curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)");
            $data = curl_exec($ch);
     		$length = strlen($data);
            header('Last-Modified: '.date('r'));
            header('Accept-Ranges: bytes');
            header('Content-Length: '.$length);
            header('Content-Type: image/jpeg');
            print($data);
            ob_end_flush(); 
    	curl_close($ch);
    
    ?>
    Örneğin bu şekilde google'ın sayfasını açıyorum. ( tabi resimler gene gözükmüyor )
    http://www.muglauniversitesi.org/pro....google.com.tr

    Örneğin Şu şekilde google'ın logosunu çekmek istiyorum ama jpg olarak algılamıyor gene veri olarak getiriyor..

    http://www.muglauniversitesi.org/pro...rpr/logo1w.png

    En azından fikrinizi söylerseniz o bile çok yardımcı olur bana.