Bismillaahirrohmaanirrohiim…
Kali ini kita akan menciptakan script PHP CURL untuk mend0wnl0ad gambar atau image.
Fungsi d0wnl0ad Gambar dibawah ini memiliki keterangan:
– Bisa mend0wnl0ad gambar via URL (http atau https)
– Lokasi folder sanggup ditentukan
– Gambar yang disupport JPG, JPEG, PNG, GIF
– Meskipun link tidak menyertakan ekstensi, gambar tetap sanggup did0wnl0ad
– Terdapat validasi pembuatan folder
– Terdapat validasi URL
– Terdapat validasi jenis gambar
– Terdapat validasi berhasil atau tidaknya gambar disimpan
– Jika gambar tidak valid maka akan dihapus dari server
– CURL sanggup diset timeoutnya
– Jika terjadi error, CURL sanggup diketahui jenis kesalahannya
– Output response berupa array yang gampang dipakai
Langsung saja, berikut fungsi PHP d0wnl0ad gambar dengan CURL
<?php
function d0wnl0adGambar($img_url, $dir_location='') {
$returns = array();
if (!empty($dir_location) AND !is_dir($dir_location)) {
if(!mkdir($dir_location, 0777, true)) {
$returns['status'] = 'error';
$returns['message'] = 'gagal menciptakan folder '.$dir_location;
return $returns;
}
}
$url = filter_var($img_url, FILTER_SANITIZE_URL);
if (filter_var($url, FILTER_VALIDATE_URL) === false) {
$returns['status'] = 'error';
$returns['message'] = 'URL tidak valid';
return $returns;
}
$path = parse_url($img_url, PHP_URL_PATH);
$file_name = basename($path);
$file_ext = pathinfo($img_url, PATHINFO_EXTENSION);//ext
$file_ext = strtolower($file_ext);
if (empty($file_name)) {
$returns['status'] = 'error';
$returns['message'] = 'Nama file tidak valid';
return $returns;
}
if (strpos($file_ext, '?')!==false) {
$file_ext = substr($file_ext,0,strpos($file_ext, '?'));
}
if ($file_ext==='png' OR $file_ext==='jpg' OR $file_ext==='jpeg' OR $file_ext==='gif') {
//$file_name = $file_name;
} else {
if (!empty($file_ext)) {
$file_ext = '';
}
}
$ch = curl_init ();
curl_setopt($ch, CURLOPT_URL,$img_url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
//curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$raw = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);
curl_close ($ch);
if (!empty($curl_error) OR $http_status!=200) {
$returns['status'] = 'error';
$returns['message'] = 'http status: '.$http_status.' '.$curl_error;
return $returns;
}
if (empty($file_ext)) {
$file_name_temp = str_replace('.', '', uniqid(rand(100,999),true));
$saveto = $dir_location.$file_name_temp;
if (file_exists($saveto)) {
@unlink($saveto);
}
@file_put_contents($saveto, $raw);
$is_image = false;
switch (exif_imagetype($saveto)) {
case IMAGETYPE_GIF:
rename($saveto, $saveto . '.gif'); $saveto = $saveto . '.gif'; $file_name = $file_name_temp . '.gif'; $is_image = true; break;
case IMAGETYPE_JPEG:
rename($saveto, $saveto . '.jpg'); $saveto = $saveto . '.jpg'; $file_name = $file_name_temp . '.jpg'; $is_image = true; break;
case IMAGETYPE_PNG:
rename($saveto, $saveto . '.png'); $saveto = $saveto . '.png'; $file_name = $file_name_temp . '.png'; $is_image = true; break;
}
if (!$is_image) {
@unlink($saveto);
$returns['status'] = 'error';
$returns['message'] = 'File bukan gambar';
return $returns;
}
} else {
$saveto = $dir_location.$file_name;
if (file_exists($saveto)) {
@unlink($saveto);
}
@file_put_contents($saveto, $raw);
$is_image = false;
switch (exif_imagetype($saveto)) {
case IMAGETYPE_GIF:
$is_image = true; break;
case IMAGETYPE_JPEG:
$is_image = true; break;
case IMAGETYPE_PNG:
$is_image = true; break;
}
if (!$is_image) {
@unlink($saveto);
$returns['status'] = 'error';
$returns['message'] = 'File bukan gambar';
return $returns;
}
}
if (!is_file($saveto)) {
$returns['status'] = 'error';
$returns['message'] = 'Gagal simpan gambar';
return $returns;
}
$returns['status'] = 'ok';
$returns['message'] = 'success';
$returns['img_url'] = $img_url;
$returns['dir_location'] = $dir_location;
$returns['img_name'] = $file_name;
$returns['saveto'] = $saveto;
return $returns;
}
//lokasi folder
$dir_location = 'gambar/';
//url gambar sebagai contoh
$img_url = 'https://fossbytes.com/wp-content/uploads/2016/02/learn-to-code-what-is-programming.jpg';
//$img_url = 'https://visiontrainingsystems.com/wp-content/uploads/2016/05/j4va-690x388.png';
$d0wnl0adGambar = d0wnl0adGambar($img_url, $dir_location);
//tampilkan array
echo '<pre>';
print_r($d0wnl0adGambar);
echo '</pre>';
//jika berhasil, tampilkan gambar
if (isset($d0wnl0adGambar['saveto'])) {
echo '<h1>GAMBAR</h1>';
echo '<img src="'.$d0wnl0adGambar['saveto'].'" />';
}
Fungsi PHP ini statusnya tinggal pakai, tidak ribet.
Kesimpulan
Oke, sementara begitu dulu tutorial cara menciptakan script d0wnl0ad gambar dengan PHP CURL.
Selanjutnya mungkin nanti akan ada tutorial perihal resize gambar dengan PHP.
Jika ada error atau ada yang ingin ditanyakan silahkan tinggalkan komentar dibawah ini.
Semoga tutorial ini bermanfaat.
Sumber https://rasupe.com
Mari berteman dengan saya
Follow my Instagram _yudha58Related Posts :
Merubah Format Teks Menjadi Angka Dan Sebaliknya Dengan PhpBismillaahirrohmaanirrohiim…Sebenarnya merubah text format menjadi angka dan sebaliknya merubah format angka menjadi teks disini yaitu kebut… Read More...
Cara Menciptakan Url Slug Sendiri Dengan PhpBismillaahirrohmaanirrohiim…Selamat pagi, siang, sore, malam…Saya ucapkan begitu alasannya ialah aku tidak tahu kapan Anda memba… Read More...
Cara Hapus Teks Pada Awal Text String – PhpBismillaahirrohmaanirrohiim…Pada beberapa bencana dikala ngoding, aku seringkali ingin menghapus awal string di PHP. Karena seringnya bencan… Read More...
Install Virtualmin Nginx Php 7.2 Php-Fpm Di Centos 7Bismillaahirrohmaanirrohiim…Pada tutorial kali ini, aku ingin mencatat cara untuk menginstall virtualmin, nginx, PHP-FPM dan PHP 7.2.Sebenar… Read More...
Script Php D0wnl0ad File Dengan CurlBismillaahirrohmaanirrohiim…Kali ini kita akan menciptakan script PHP CURL untuk mend0wnl0ad file dengan format apa saja.Fungsi d0wnl0… Read More...
0 Response to "Script Php D0wnl0ad Gambar Dengan Curl"
Posting Komentar