خواندن یک صفحه html توسط php از راه دور

Grand

New Member
سلام.

من می خوام در داخل سورس های php ، محتویات یک صفحه از یک سایت دیگه رو لود یا به اصطلاح fetch کنم.

مثلا سایت من mysite.com هست و می خوام در php محتویات ali.com/page1.html رو بدست بیارم و در یک متغیر ذخیره کنم.

من از سروری استفاده می کنم که نمی دونم به چه دلیل ، اما به هر دلیل، دو تابع fopen() , file_get_contents() کار نمی کنند.
احتمالا پورت 80 ممکنه بسته باشه یا فایروال مانع اینکار بشه.


آیا راهی هست که بتونم این مشکل رو برطرف کنم ؟

از طریق ini_set یا htaccess. کاری نمی شه انجام داد ؟

تابع دیگه ای نیست که بشه باهاش محتویات یک صفحه خارج از سایت خودمون رو load کرد ؟
 

firebird

Member
کد:
    function read_url($s_url, $post_values="") 
    {
        $user_agent = 'Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020921 Netscape/7.0';

        $o_ch = curl_init();
        curl_setopt ($o_ch, CURLOPT_URL, $s_url);
        curl_setopt ($o_ch, CURLOPT_USERAGENT, $s_user_agent);
        curl_setopt ($o_ch, CURLOPT_HEADER, 0);
        curl_setopt ($o_ch, CURLOPT_RETURNTRANSFER, 1);
        if ($post_values) {
            curl_setopt ($o_ch, CURLOPT_POST, 1);
            curl_setopt ($o_ch, CURLOPT_POSTFIELDS, $post_values); 
        }
        $s_html = curl_exec ($o_ch);
        curl_close ($o_ch);
        unset($o_ch);
        
        return $s_html;
    }
 

Grand

New Member
curl تاحالا باش کار کردی؟

نه
ولي فكر كنم دوستمون در ارسال قبلي همون رو لطف كردن و درج كردن
البته با موبايل كار مي كنم كدها و صفحه رو درست نمي تونم ببينم
به هرحال تشكر مي كنم از لطفتون
 

Grand

New Member
دوستان خیلی لطف کردید!
روی هاست خودم به درستی کار می کرد.
البته روی لوکال موقع اجرای curl_init() ارور میداد.

میشه درباره curl یک توضیح کوچک بدید؟
از دستورات shell هست ؟
این چیزی هست که ماه ها دنبالش بودم. حتی امکان post هم داره.


یک سوال دیگه هم دارم اینه که چطور میشه کل هدرهایی که کاربر برای صفحه php فرستاده رو بدست آورد ؟
من تا حالا فقط از طیق فوق سراسری ها به بعضی از مقادیرش دسارسی داشتم ...
 

firebird

Member
CURL یک کتابخانه از توابع هست که به زبان C نوشته شده و با نوشتن اینترفیسهای خاصی اون رو به اکثر زبانها اضافه میکنند. به طوری که کار با این توابع در PHP با مثلاً Delphi تا حد زیادی شبیه به هم هستند. حالا اگر بخواهید از توابع این کتابخونه استفاده کنید باید پیش از این روی سرورتون این کتابخانه نصب باشه. اگر یک phpinfo بگیرید میتونید تشخیص بدید که نصب هست یا نه. سابقا‌ٌ هاستهای کمی CURL رو نصب داشتند ولی در حال حاضر فقط معدود سرورهایی که کیفیت پایین تری دارند این کتابخانه رو نصب ندارند.
 

Grand

New Member
این library رو چطور میشه روی لوکال نصب کرد که در لوکال همب به توابعش دسترسی داشته باشم ؟
لینک دانلودش رو دارید ؟
 

جدیدترین ارسال ها

بالا