"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تسريع استرجاع حجم الصورة في PHP: هل file_get_contents هو الحل؟

كيفية تسريع استرجاع حجم الصورة في PHP: هل file_get_contents هو الحل؟

تم النشر بتاريخ 2024-11-05
تصفح:630

How to Speed Up Image Size Retrieval in PHP: Is file_get_contents the Solution?

كيفية الحصول على حجم الصورة بسرعة البرق في PHP باستخدام file_get_contents

يمكن أن يكون الحصول على أبعاد الصورة للعديد من الصور البعيدة مهمة تستغرق وقتًا طويلاً، خاصة باستخدام getimagesize. فيما يلي طريقة بديلة تستفيد من file_get_contents لاسترداد أحجام الصور بسرعة:

استخدام وظيفة PHP مخصصة

تقرأ وظيفة ranger () التالية نطاق بايت محدد من جهاز التحكم عن بعد الصورة، مما يتيح استخراج الحجم السريع:

function ranger($url){
    $headers = array(
    "Range: bytes=0-32768"
    );

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

استخراج حجم الصورةبمجرد الحصول على بيانات الصورة، يمكنك تحديد أبعادها باستخدام imagecreatefromstring() ووظائف تحليل الصور المضمنة:

$im = imagecreatefromstring($raw); $width = Imagesx($im); $height = imagey($im);
$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);
قياس الأداء

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

$start = microtime(true); $url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg"; $raw = الحارس($url); $im = imagecreatefromstring($raw); $width = Imagesx($im); $height = imagesy($im); $stop = round(microtime(true) - $start, 5); echo $width." x ".$height." ({$stop}s)";
$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);
نتائج الاختبار

استغرق استرداد الصورة النموذجية 0.20859 ثانية فقط أبعادها. لقد أثبت تحميل 32 كيلو بايت من البيانات فعاليته في هذا الأسلوب. من خلال تطبيق هذه التقنية، يمكنك الحصول بسرعة على أحجام الصور البعيدة، مما يقلل من الاختناقات التي تواجهها عادةً getimagesize.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3