استرداد عنوان URL الفعلي بعد استرجاع الملف باستخدام file_get_contents
عند استخدام file_get_contents() لاسترداد محتوى موقع الويب، من الممكن أن يقوم عنوان URL المقدم بإعادة التوجيه إلى موقع مختلف. على الرغم من أن هذه الميزة يمكن أن تكون ملائمة، إلا أنها قد تخلق أيضًا حاجة لتحديد عنوان URL الفعلي الذي تم الوصول إليه بعد إعادة التوجيه.
إحدى الطرق لتحقيق ذلك هي تكوين file_get_contents() لتجاهل عمليات إعادة التوجيه. وإليك الطريقة:
$context = stream_context_create(
array(
'http' => array(
'follow_location' => false
)
)
);
$html = file_get_contents('http://www.example.com/', false, $context);
من خلال تعيين "follow_location" على false في سياق الدفق، سيقوم file_get_contents() باسترداد المحتوى بدون تلقائيًا بعد عمليات إعادة التوجيه.
بعد تقديم الطلب، يمكن فحص الرؤوس التي تم إرجاعها أثناء استجابة HTTP للحصول على النتيجة النهائية عنوان URL:
var_dump($http_response_header);
سيؤدي هذا إلى عرض مصفوفة تحتوي على رؤوس HTTP، بما في ذلك رأس "الموقع" الذي يشير إلى عنوان URL الفعلي الذي تم الوصول إليه بعد أي عمليات إعادة توجيه.
هذا الأسلوب مستوحى من الحل المقدم في Stack Overflow في الموضوع "كيف أتجاهل رأسًا منقولاً يحتوي على file_get_contents في PHP؟"تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3