سؤال

أقوم بعمل تطبيق ويب في PHP وأريد قراءة المحتوى من مجال آخر. يبدو أن خياراتي الرئيسية fopen و curl.

ما هي الاختلافات الرئيسية بين هاتين الطريقتين ، وخاصة فيما يتعلق بالأمان والخيارات المتاحة؟

هل يهم إذا كان عنوان URL موقع HTTP أو HTTPS؟

هل كانت مفيدة؟

المحلول

يستخدم Curl مكتبة خارجية ولديه الكثير من الطاقة لتخصيص الطلب - الرؤوس المخصصة ، وإنشاء طلب النشر ، وتحميل الملفات. كل ما تحتاجه يجب أن أقول.

يقتصر FOPEN على مجرد تقديم طلب من عنوان URL دون أي تخصيص إضافي.

أما بالنسبة إلى الضفيرة الأمنية ، فلا تتأثر بتكوين الأمان في PHP (مثل fopen المحظور لعناوين URL عن بُعد وما شابه).

يعيد لك كلا الاحتمالين البيانات التي يمكنك استخدامها بكل طريقة ممكنة. إذا قمت بعمل حفرة أمان في مشروعك ، فبعد الحصول على البيانات هو خطأك بعد كل شيء.

كما أنني لست متأكدًا تمامًا ولكني أعتقد أنه لا يمكن لـ FOPEN التعامل مع اتصالات SSL (HTTPS). يدعم كل من FOPEN و CURL SSL (كما لاحظ آندي شيلام في تعليق أدناه).

نصائح أخرى

يرى ما هي الاختلافات المهمة بين استخدام FOPEN (url $) و CURL في PHP؟ بالنسبة لبعض إعدادات الأمان التي تؤثر على FOPEN وهي ALMER_URL_INCLUDE.

لاحظ أيضًا أنه مع Curl إذا قمت بـ Curlopt_Followlocation ، يتبع Curl إعادة توجيه إلى ملف: // لجلب البيانات (لا تزال خاضعة لـ Open_Basedir). يمكن أن تكون إعادة التوجيه إلى مخططات أخرى مثل FTP: // أسوأ (لم يتم اختبار FTP: //). بدون هذا setopt لا يتبع إعادة التوجيه على الإطلاق. يبدو أن Fopen يعمل مع 302 بشكل افتراضي ولكن فقط http: // -> http: // و ليس http: // -> file: //.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top