Cara menggunakan php menyimpan gambar

Terkadang, perlu mengunduh gambar dari URL tertentu dan menggunakannya ke dalam proyek. Sangat mudah untuk membuka halaman dan menggunakan tombol klik kanan dan menyimpan gambar. Tetapi bagaimana jika Anda ingin melakukannya secara terprogram? . Jika kumpulan ratusan URL gambar diberikan dan entah bagaimana ingin menyimpannya ke dalam mesin, atau perlu menggunakan konsep ini ke dalam proyek. Maka pasti tidak akan mendownload masing-masing file tersebut secara manual

Ada dua pendekatan berbeda untuk mengunduh gambar dari url yang tercantum di bawah ini

  • Menggunakan penanganan file dasar
  • Menggunakan perpustakaan HTTP yang disebut cURL

Kedua pendekatan ini memiliki kelebihan dan kekurangannya masing-masing

Menggunakan Penanganan File Dasar. Ini adalah cara mendasar dan termudah untuk menyelesaikan tugas. Sama seperti file lainnya, mulailah dengan membuat file kosong dan buka dalam mode "tulis". Setelah itu, ambil konten dari URL sumber dan rekatkan ke file ini. Dan itu sesederhana kedengarannya

Dari skripnya, Anda bisa mengetahui sendiri apa fungsinya

  • Mendeklarasikan dua variabel bernama $url dan $img, masing-masing mewakili URL sumber dan file tujuan
  • Gunakan fungsi file_put_contents() untuk menulis string ke file yang membutuhkan dua argumen. Salah satunya adalah nama file (atau jalur) dan yang lainnya adalah konten untuk file tersebut
  • Gunakan fungsi file_get_contents() untuk membaca file menjadi string

Contoh




<?php

 

$url

'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-6-1.png'

 

$img

File downloaded!
0
File downloaded!
1

 

File downloaded!
_4

File downloaded!
5
File downloaded!
6$img0_______8
File downloaded!
9
File downloaded!
6$url<?php2

 

<?php4 <?php5

 

<?php_7

File downloaded!

Catatan. Ini menyimpan gambar ke server dengan logo nama yang diberikan. png

Sekarang satu-satunya masalah dengan metode ini adalah memerlukan konfigurasi allow_url_fopen untuk disetel, yang disetel ke 1 secara default. Namun terkadang, persyaratan proyek tidak memungkinkan untuk memiliki opsi ini. Ini mungkin karena beberapa langkah keamanan preventif atau hanya prinsip desain. Dalam kasus seperti itu, ada metode lain untuk menyimpan gambar

Menggunakan perpustakaan HTTP, cURL. Sebenarnya, cURL bukan hanya pustaka HTTP. Itu juga memiliki beberapa protokol transfer data lainnya. Karena gambar kami ada di server HTTP, kami akan membatasi diri pada bagian kecil dari perpustakaan ini

cURL memungkinkan untuk membuat permintaan HTTP di PHP. Mulailah dengan menginisialisasi instance-nya dan menyiapkan beberapa opsi yang diperlukan untuk permintaan tersebut, termasuk URL itu sendiri. Kemudian jalankan kueri ini yang mengembalikan konten file. Setelah itu, prosedur selanjutnya sama. Segera setelah kami mendapatkan datanya, masukkan ke dalam file dan simpan

Mendekati

  • Dalam skrip ini, kami mendefinisikan fungsi file_get_contents_curl untuk mereplikasi perilaku file_get_contents dari teknik yang disebutkan sebelumnya
  • Di dalam fungsi ini, kami telah menginisialisasi instance cURL menggunakan fungsi curl_init untuk menggunakannya untuk mengambil data
  • Setelah itu, beberapa opsi perlu disetel menggunakan curl_setopt agar contoh khusus ini dapat berfungsi. Fungsi ini membutuhkan tiga argumen
    • Contoh Curl
    • Opsi yang sesuai yang perlu diatur
    • Dan nilai opsi yang ditetapkan

    Dalam contoh ini, opsi berikut ditetapkan

    • CURLOPT_HEADER, yaitu untuk memastikan apakah Anda perlu menerima header atau tidak;
    • CURLOPT_RETURNTRANSFER yang mentransfer data sebagai nilai pengembalian fungsi curl_exec daripada mengeluarkannya secara langsung
    • Ada opsi lain CURLOPT_URL yang menetapkan URL untuk permintaan
  • Setelah itu, kami mengambil data dari curl_exec dan mengembalikannya dari fungsi induk
  • Data ini kemudian ditulis ke file di mesin Anda menggunakan file_put_contents

Contoh




<?php

 

 0  1$url 3

 4 5  6

 

 4 9 5$url1

 4 9 5$url5

 4 9 5$url9$url1

 

 44 5 51

 49 51

 

 4'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-6-1.png'4 4'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-6-1.png'6

'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-6-1.png'_7

 

4 0

'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-6-1.png'1

 

4

File downloaded!
06'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-6-1.png'6

 

File downloaded!
5
File downloaded!
64
File downloaded!
84 1

<?php4 <?php5

 

<?php_7

Keluaran

File downloaded!

Metode ini memberikan sedikit fleksibilitas saat mengambil konten dari internet. Seperti disebutkan sebelumnya, itu tidak hanya terbatas pada HTTP tetapi juga dapat digunakan dalam banyak keadaan lain. Ini memungkinkan Anda untuk mengonfigurasi transfer dengan cara apa pun yang Anda inginkan. Misalnya, file_get_contents menggunakan permintaan GET sederhana untuk mengambil data, tetapi dengan cURL, dapat menggunakan GET, POST, PUT, dan metode lainnya juga

PHP adalah bahasa skrip sisi server yang dirancang khusus untuk pengembangan web. Anda dapat mempelajari PHP dari bawah ke atas dengan mengikuti Tutorial PHP dan Contoh PHP ini