تالار گفتمان nCIS.ir

نسخه‌ی کامل: مشکل با curl | Object moved
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
من میخوام مثل سایت های دیگه که از سایت subscene رو بدون فیلتر بالا میارن این کار رو انجام بدم

اما موقع دانلود ارور Object moved to here رو میگرم

باید چیکار کنم؟
http://1o2.ir/uxmr4

<?php


if(isset($_GET['link'])) {
$endlink = $_GET['link'];
echo get("http://subscene.com/" . $endlink);

} 
else
echo get("http://subscene.com/");


function get($link) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt( $ch, CURLOPT_TIMEOUT, 10 ); // timeout
return $html =  curl_exec($ch);
curl_close($ch);
}
?>
FOLLOWLOCATION رو غیرفعال نکنید.
FOLLOWLOCATION فعالش کردم الان میتونید ببینید
http://1o2.ir/uxmr4
میره صفحه اول سایت
این که صفحه اول نرفت و زیرنویسهای Mad Max: Fury Road رو آورد.
درسته
شما رو دانلود کلیک کنید
وقتی رو دانلود کلیک کنید میره صفحه اول
اگر همFOLLOWLOCATION غیر فعال باشه ارور Object moved to here رو میگرم

مشکل من با دانلود کردن زیرنویسه
به گمانم فایل رو هم باید با cURL دانلود کنید. شاید هم سایت داره کوکی ست میکنه و شما هم برای دانلود باید با cURL کوکی رو بگیرین و بفرستین. این سایتها به دلیل آمار زیاد سرقت اطلاعات ازشون، دست کم یکی دو مورد امنیتی که اکثراً هم دور زدنشون ساده است، اعمال میکنن. باید به دقت هدرهایی که توی سایت اصلی مبادله میشه رو رصد کنید و مطابق همونها درخواستها رو با cURL بفرستین.
الان این تغییرات رو انجام دادم
function right($url){
return str_replace("|","?",$url);
}

if(isset($_GET['link'])) {
$endlink = right($_GET['link']);
echo get("http://subscene.com/" . $endlink);

} 
else
echo get("http://subscene.com/");


function get($link) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt( $ch, CURLOPT_TIMEOUT, 10 ); // timeout
$html =  curl_exec($ch);
curl_close($ch);

return str_replace("?","|",$html);


}


وقتی رو دانلود کلیک کنین این هدر هم میاد
نقل قول:Content-Type: application/x-zip-compressed; charset=utf-8
این همون فایل zip میشه که  میخوام دانلود کنم؟ درسته؟
حالا چطوری هدر رو ست کنم که دانلود منیجر کاربر فایل zip رو دانلود کنه؟
هدر attachment رو ست کنید. ضمناً هیچ محتوای دیگری هم نباید برای کلاینت ارسال بشه. درمورد indirect download with PHP جستجو کنید.
تونستم مشکل رو حل کنم


باید قبل از هدر از
       ob_start();

استفاده میکردم
سلام
از Mod Proxy آپاچی استفاده کنید.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
سلام من منبع فارسی خوبی پیدا نکردم میشه خواهش کنم یه نفر یه مقدار توضیح بده
میشه کد کامل شده رو قرار بدید اخه هر کاری میکنم مشکل داره ...