PDA

View Full Version : حرفه ای: مشکل در Curl



alimooghashang
چهارشنبه 03 خرداد 1396, 20:54 عصر
سلام
من یه فراخوانی داده از یه سایت چینی هست میخام انجام بدم آدرس اینه

http://search.ickey.cn/site/getsup?keyword=3305
کدی که نوشتم هم اینه

مشکلی که هست اینه که اگه ادرس بالا رو توی مرورگر بزنید 800 تا نتیجه میاره
ولی اگه با PHP بزنید 1 نتیجه میاره

یه برنامه C#‎‎ ساده هم نوشتم بدون هیچ تنظیمات خاصی درست کار میده فقط نمیدونم چرا توی PHP درست کار نمیده


$url = "http://search.ickey.cn/site/getsup?keyword=" . $query;
$curl_options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_TIMEOUT => 0,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_ENCODING => 'gzip,deflate',
CURLINFO_HEADER_OUT=> TRUE,
CURLOPT_HTTPGET => TRUE,
CURLOPT_VERBOSE=>TRUE,
CURLOPT_USERAGENT=>$_SERVER["HTTP_USER_AGENT"],
CURLOPT_REFERER => "http://search.ickey.cn/"
);
$ch = curl_init();
curl_setopt_array( $ch, $curl_options );
$jsonresponse = curl_exec($ch);

ممنون میشم راهنمایی کنید که چه مشکلی هست که سروری که بهش درخواست میدم منو مثل مرورگر یا برنامه نمیشناسه که 800 تا پاسخ رو برام ارسال کنه و فقط یکی ارسال میکنه

plague
پنج شنبه 04 خرداد 1396, 17:58 عصر
برا من همه رو خروجی داد
اگه شما رو مرورگر نمیشناخت احتمالا اصلا بهت هیچ پاسخی نمیداد بجای 1 دونه
فکر میکنم لینکی که میفرستی مشکلی داره
بهتره قبل از ارسال چاپش کنی تا مطمئن بشی چه لینکی رو داری میفرستی

alimooghashang
جمعه 05 خرداد 1396, 13:20 عصر
برا من همه رو خروجی داد
اگه شما رو مرورگر نمیشناخت احتمالا اصلا بهت هیچ پاسخی نمیداد بجای 1 دونه
فکر میکنم لینکی که میفرستی مشکلی داره
بهتره قبل از ارسال چاپش کنی تا مطمئن بشی چه لینکی رو داری میفرستی
فکر میکنم مشکل از سرویس دهنده هاستم هست

plague
جمعه 05 خرداد 1396, 16:35 عصر
من رو لوکال تست کردم اکی بود
از سروریس دهنده فکر نمیکنم باشه چون اگه بود همونجوری که گفتم هیچی خروجی نمیداد نه اینکه یدونه خروجی بده
من فکر میکنم اون پارامتری که به لینک تزریق میشه مشکلی داره شاید بد نباشه urlencode بکنی یا اگه همیشه عددی هستش از فیلتر intval ردش کنی که چیز اضافه باهاش نره , من نمیدونم از کجا میاد دقیقا ولی احتمالش هست یه سری کاراکتر اضافه توش باشه که حتی ممکنه مخفی باشن و دیده نشن (مخصوصا اگه از دیتبایس بخونی و از کاراکتر های غیر انگیسی توش باشه )

یه نکته دیگه البته فکر میکنم خودتون متوجه این نکته باشید که اینجوری که شما user agent رو ست کردین اگه با کرون اجرا بشه این احتمالش هست که جلوش رو بگیره

alimooghashang
جمعه 05 خرداد 1396, 16:50 عصر
پارامترم عدده مشکلی نداره
فکر میکنم مشکل از هاسته
با یه هاست محانی به اسم hostinger تست کردم راحت جواب داد همین کد