عند مواجهة الخطأ "فشل تمكين التشفير" أثناء استخدام file_get_contents() مع OPENSSL، من الضروري التحقيق في الأمر المشكلة الأساسية.
تحديد السبب الجذري
يقترح سجل الأخطاء المقدم انتهاء المهلة أثناء تهيئة التشفير. ومع ذلك، قد تكمن المشكلة في مكان آخر. أحد الأسباب المحتملة هو أن موقع الويب يستخدم إصدار SSL غير مدعوم، مثل SSLv3.
الحل باستخدام cURL
لتجاوز قيود file_get_contents() وتمكين دعم SSLv3 ، فمن المستحسن استخدام cURL بدلاً من ذلك:
function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
var_dump(getSSLPage("https://eresearch.fidelity.com/eresearch/evaluate/analystsOpinionsReport.jhtml?symbols=api"));
يقوم هذا الحل بشكل صريح بتعيين إصدار SSL على الإصدار v3، مما يسمح لـ Curl بالتعامل معه تمت مصافحة SSL بنجاح.
اعتبارات إضافية لمستخدمي Windows
بالنسبة لمستخدمي Windows، قد يكون من الضروري أيضًا تحديد موقع الشهادات الجذرية للضفيرة. يمكن تحقيق ذلك عن طريق:
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
من خلال تعيين خيار CURLOPT_SSL_VERIFYPEER على true، سوف يتحقق curl من شهادة النظير مقابل الشهادات الجذرية المحددة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3