"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يمكن أن يكون CURL بديلاً لـ file_get_contents لجلب الروابط الخارجية؟

هل يمكن أن يكون CURL بديلاً لـ file_get_contents لجلب الروابط الخارجية؟

تم النشر بتاريخ 2024-11-16
تصفح:304

Can CURL Be an Alternative to file_get_contents for Fetching External Links?

استخدام CURL لجلب الروابط الخارجية (بديل لـ file_get_contents)

لجلب الروابط الخارجية على صفحة معينة، عادةً ما يتم استخدام وظيفة file_get_contents . ومع ذلك، عندما لا يدعم الخادم الذي تستخدمه هذه الوظيفة، يمكن أن يعمل CURL كبديل قابل للتطبيق.

لتنفيذ CURL، يمكنك استخدام الكود التالي:

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

// Usage Example
echo file_get_contents_curl('http://google.com');

ولكن في الحالات التي يعرض فيها هذا الرمز صفحة فارغة، فمن المحتمل أن يكون تمكين إعادة توجيه عنوان URL ضروريًا. لمعالجة هذه المشكلة، قم بتعديل التعليمات البرمجية بالطريقة التالية:

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}
بيان الافراج أعيد طبع هذه المقالة على: 1729171883 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3