۷ Amir
مشکل در لود سایت
جامعه پی اچ پی ایجاد شده در ۱۰ اسفند ۱۴۰۱

سلام مشکل این کجاست ؟ ماژول کرل هم چک کردم فعاله

<?php
function httpGet($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    // curl_setopt($ch,CURLOPT_EADER,false);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}
echo httpGet("https://www.digikala.com/");

efdd-curl.png

سلام امیر جان، فانکشنتون رو به شکل زیر تغییر بدید و از خطایی که رخ میده عکس بفرستید.

function httpGet($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLOPT_HEADER, false);
    $output = curl_exec($ch);
    if ($output === false) {
        $error = curl_error($ch);
        curl_close($ch);
        return "Curl error: " . $error;
    }
    curl_close($ch);
    return $output;
}
صادق برزگر ۱۰ اسفند ۱۴۰۱، ۱۵:۴۷

هیچ خطایی رخ نمیدهد و صفحه خالیه !

اینم بگم فقط رو دیجیکالا نمیشه بقیه سایت‌ها رو تست کردم مثل سون لرن اوکی بود مشکل از چی هست ؟


Amir ۱۰ اسفند ۱۴۰۱، ۱۷:۰۷

سلام،

ctrl+u بزنید (view page source) اطلاعات رو میبینید.

محسن موحد ۱۱ اسفند ۱۴۰۱، ۱۰:۱۹

مشکل هنوز حل نشده

Amir ۱۳ اسفند ۱۴۰۱، ۰۷:۰۶

چه کدیو اجرا میکنید و خروجی چی میگیرید؟ (داخل پیج سورس یا ترمینال)

محسن موحد ۱۳ اسفند ۱۴۰۱، ۰۷:۲۳

همون کد بالا و تو پیج سورس خروجی میگیرم هیچ چیزی نشون نمیده

Amir ۱۳ اسفند ۱۴۰۱، ۰۷:۲۵

الان دو تا کد هست.

کد خودتون یا صادق؟ چون کد دوم اگر خروجی وجود نداشته باشد باید خطای curl error چاپ شود.

من آدرس www.digikala.com رو اجرا میکنم بدون مشکلی خروجی میده. خروجی را در htmlentities چاپ کنید و تست کنید. (خروجی که میگیرید دقیقا همان خروجی است که در page source ای که از digikala.com میگیریده.)

البته این موضوع رو هم بدونید از دیجیکالا برای گرفتن دیتای کامل صفحات با curl میتونید صفحات مختص محصول و بلاگ رو بخونید. صفحاتی که دیتاشون مثل صفحه ی اول داینامیک تولید میشه باید با ابزار دیگری مثل سلنیوم خوند. (در کل برای پیمایش این موارد بهتره به api سایت درخواست ارسال بشه و از شرکت دسترسی به api رو گرفت. بد نیست اینرو هم اضافه کنم که چطور درخواست‌های داینامیک یک سایت رو ببینید. برای اینکه درخواست‌ها رو ببینید میتوند روی سربرگ network بزنید و فیلتر xhr و روی هرکدوم که کلیک کنید از هدر میتونید لینکشو رو ببینید و از preview مقدارش ... نمونه لینکی از محصولات دیجیکالا و url هرکدام.)

function httpGet($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLOPT_HEADER, false);
    $output = curl_exec($ch);
    
    if ($output === false) {
        $error = curl_error($ch);
        curl_close($ch);
        return "Curl error: " . $error;
    }
    curl_close($ch);
    return $output;
}
echo htmlentities(httpGet("https://www.digikala.com/mag/xiaomi-redmi-note-12s-emerges-as-new-budget-smartphone-series/"));
بهترین پاسخ
محسن موحد ۱۳ اسفند ۱۴۰۱، ۰۸:۰۰