مشکل نخواندن اطلاعات تابع file_get_contents بعد از استفاده از CDN
اگر بخشی از برنامهی شما از دستور file_get_contents استفاده میکرد و بعد از منتقل شدن به روی CDN آن بخش از کار افتاده است این آموزش کوتاه را استفاده کنید. این مشکل برای تیم ما زمانی به وجود آمد که از CDNهای شرکت ابرآروان در یکی از پروژههای تست در حال استفاده بودیم و بعد از رفع این مشکل آن را در این نوشته برای شما قرار دادهایم.
مشکل نخواندن اطلاعات تابع file_get_contents بعد از استفاده از CDN
احتمالا شما از تابع file_get_contents به صورت زیر استفاده کردهاید:
<?php
file_get_contents("https://google.com")
?>
بعد از منتقل شدن شما به روی سیدیان احتمالا نتیجهی کد بالا یک محتوای خالیست زیرا با مشکل SSL روبرو شده است. خب حالا به جای استفاده از حالت بالا به سادگی از کد زیر استفاده کنید و مشکل خود را به سادگی حل کنید:
<?php
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$response = file_get_contents("https://google.com", false, stream_context_create($arrContextOptions));
echo $response; ?>
نکته: ما از کد بالا برای خواندن فید RSS وردپرس استفاده کردیم و در واقع یک فایل متنی را به جای یک صفحهی وب استفاده کردیم.
نکته: تابع file_get_contents یکی از توابع داخلی زبان برنامه نویسی پیاچپی است.
اگر مشکل شما با کد بالا حل نشد در بخش نظرات همین نوشته برای ما بنویسید تا مشکل شما را بررسی کنیم.



















آیا برای فایلهای بزرگ هم file_get_contents با این روش کار میکنه یا بهتره روش دیگهای باشه؟
بله، این روش برای فایلهای بزرگ هم کار میکند، اما برای اطمینان بیشتر و جلوگیری از بروز مشکلات احتمالی در زمان پردازش فایلهای حجیم، استفاده از توابع دیگری مانند `curl` یا `fopen` با مدیریت بهتر جریان داده توصیه میشود.
آیا تاثیر این کار روی امنیت اتصال HTTPS سایت هست؟
غیرفعال کردن تأیید SSL ممکن است امنیت اتصال HTTPS را کاهش دهد، اما در برخی موارد برای حل مشکل دسترسی به منابع خارجی ضروری است.
این روش روی سرورهای با نسخههای قدیمی PHP هم جواب میده؟
بله این روش روی نسخههای قدیمیتر PHP نیز کار میکند.
آیا این مشکل فقط با CDN ابرآروان پیش اومده یا برای همه CDN ها رخ میده؟
این مشکل به طور کلی با CDNهایی که تنظیمات SSL خاصی دارند ممکن است رخ دهد، نه فقط ابرآروان.
آیا بهتر نیست از curl به جای file_get_contents استفاده کنیم؟
استفاده از curl هم راه حل مناسبی است، اما در این مورد خاص، راه حل ارائه شده برای رفع مشکل file_get_contents با CDN سریعتر و سادهتر بود.
سلام و عرض ادب
دم شما گرم
موفق باشید