Rumah >pembangunan bahagian belakang >tutorial php >## Bagaimana Saya Boleh Mempercepatkan Pengambilan Imej daripada Halaman Web?
Cara Mengambil Imej dengan Lebih Cepat daripada Halaman Web
Apabila memperoleh imej daripada URL yang diberikan, memenuhi kriteria tertentu boleh meningkatkan kecekapan proses . Artikel ini akan menumpukan pada mengekstrak imej dengan lebar dan ketinggian lebih besar daripada atau sama dengan 200 piksel, bertujuan untuk mempercepatkan proses berbanding kaedah lalai yang panjang.
Pencapaian Imej Lebih Pantas
Pendekatan tradisional melibatkan mengambil semula setiap imej secara berurutan daripada URL sumber dan menggunakan getimagesize() untuk mengesahkan dimensinya. Walau bagaimanapun, kaedah ini boleh menjadi perlahan dan banyak sumber. Untuk mengoptimumkan kelajuan, pertimbangkan penambahbaikan berikut:
1. Leverage Parallelism:
Gunakan fungsi curl_multi_init() untuk melancarkan berbilang permintaan HTTP serentak, mendapatkan semula imej secara selari. Pendekatan ini mengurangkan masa tindak balas dengan ketara dengan mengeksploitasi lebar jalur yang tersedia.
2. Simpan Imej Setempat:
Elakkan memanggil getimagesize() pada imej jauh. Sebaliknya, muat turun imej ke dalam direktori sementara tempatan dan tentukan dimensinya di sana. Langkah ini menghapuskan kelewatan yang dikaitkan dengan menghantar permintaan HTTP tambahan.
Pertimbangan Tambahan:
Peningkatan Prestasi:
Dengan melaksanakan teknik di atas, pengambilan imej boleh dipercepatkan secara mendadak. Pertimbangkan contoh berikut:
<code class="php">// Start the timer $start = microtime(); // Fetch images using curl_multi_init $res = imageDownload($nodes, 200, 200); // Stop the timer and display elapsed time echo "<h1>", microtime() - $start, "</h1>"; function imageDownload($nodes, $maxHeight = 0, $maxWidth = 0) { // ... (curl_multi_init code here) ... // ... (curl_multi_exec code here) ... $res = array(); // ... (image processing code here) ... return $res; }</code>
Sampel Output:
Array ( [0] => temp/img8cdd64d686ee6b925e8706fa35968da4.gif [1] => temp/img5811155f8862cd0c3e2746881df9cd9f.gif [2] => temp/imga597bf04873859a69373804dc2e2c27e.jpg [3] => temp/img0914451e7e5a6f4c883ad7845569029e.jpg [4] => temp/imgb1c8c4fa88d0847c99c6f4aa17a0a457.jpg [5] => temp/img36e5da68a30df7934a26911f65230819.jpg [6] => temp/img068c1aa705296b38f2ec689e5b3172b9.png [7] => temp/imgfbeca2410b9a9fb5c08ef88dacd46895.png ) 0.076347
Pendekatan yang dipertingkatkan ini menghasilkan keuntungan prestasi yang ketara berbanding dengan pelaksanaan asal, mengurangkan masa pemprosesan sebanyak hampir 40 saat.
Atas ialah kandungan terperinci ## Bagaimana Saya Boleh Mempercepatkan Pengambilan Imej daripada Halaman Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!