Emad Saif نشر 24 مارس 2022 أرسل تقرير نشر 24 مارس 2022 قمت بكتابة كود PHP التالي للحصول على كود HTML الخاص بالمواقع: <?php $page = file_get_contents('http://www.example.com/'); echo $page; لكن المشكلة هي أن هذا الكود يقوم بإظهار الخطأ التالي إن لم يكن الموقع موجودًا (مثل تجربة رابط لا يعمل): Warning: file_get_contents(http://www.not-exists-on-web.com): Failed to open stream كيف أحل هذه المشكلة وأتأكد أنه تم تحميل البيانات بشكل سليم أم لا؟ 2 اقتباس
2 سامح أشرف نشر 24 مارس 2022 أرسل تقرير نشر 24 مارس 2022 الدالة file_get_contents تقوم بإرجاع false إذا لم تتمكن من الحصول على أي محتوى من الرابط. ويمكنك إستخدام معامل التحكم بالخطأ @ مع جملة if بالشكل التالي: <?php $page = @file_get_contents('http://www.not-exists-on-web.com'); if ($page !== False) { // تم تحميل الصفحة بشكل سليم echo $page; } else { // فشلت عملية تحميل الصفحة echo "NOT loaded"; } لمزيد من المعلومات عن هذه الدالة، يمكنك زيارة موسوعة حسوب (الدالة file_get_contents() في PHP). 1 اقتباس
1 Wael Aljamal نشر 24 مارس 2022 أرسل تقرير نشر 24 مارس 2022 يمكننا التأكد من توفر مسار ملف أو موقع ويب من خلال الدالة file_contents_exist ثم بعد أن تعيد قيمة true يمكننا تطبيق file_get_contents مباشرة <?php $file_path = 'https://academy.hsoub.com/'; if(file_contents_exist($file_path)) { $file = file_get_contents($file_path); } حيث أنه يمكننا برمجتها بالشكل: <?php // دالة تقبل عنوان الويب // رقم كود الاتصال المرغوب // 200 يعني نجاح الاتصال function file_contents_exist($url, $response_code = 200) { // جلب الترويسة $headers = get_headers($url); if (substr($headers[0], 9, 3) == $response_code) // اقتطاع شيفرة رمز الرد { return TRUE; } else { return FALSE; } } في حالات متقدمة إن أردت معرفة HTTP response code أي معرفة تفاصيل عن الاتصال يمكننا استعمال الدالة get_http_response_code التي تعيد رمز الكود ثم تعامل معه كما تريد <?php // تعريف دالة لقراءة حالى الاتصال function get_http_response_code($url) { $headers = get_headers($url); // اقتطاع رقم الحالة return substr($headers[0], 9, 3); } if(get_http_response_code('https://academy.hsoub.com/questions/') != "200"){ echo "error"; }else{ file_get_contents('https://academy.hsoub.com/questions/'); } اقتباس
السؤال
Emad Saif
قمت بكتابة كود PHP التالي للحصول على كود HTML الخاص بالمواقع:
لكن المشكلة هي أن هذا الكود يقوم بإظهار الخطأ التالي إن لم يكن الموقع موجودًا (مثل تجربة رابط لا يعمل):
Warning: file_get_contents(http://www.not-exists-on-web.com): Failed to open stream
كيف أحل هذه المشكلة وأتأكد أنه تم تحميل البيانات بشكل سليم أم لا؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.