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 :
Belajar Struktur If...Else Di Php If else bias di sebut juga sebagai pengecualian, karna fungsi if didalam jadwal yakni… Read More...
Mengatur Koneksi Database Dengan Memakai Codeigniter Cahya Dyazin - Tutorial kali ini kita akan membahas cara Configurasi MYSQL di CodeIgniter, ibarat yang kita tahu, codeigni… Read More...
Konsep Dasar Memakai CodeigniterCahya Dyazin - Ketika kita berguru CodeIgniter, Dalam folder CodeIgneter, terdiri dari 3 folder, "application" ini folder untuk developer ya… Read More...
Memperbesar Max Upload Server Web Apache Di Ubuntu Pada tutorial ini, aku membahas bagaimana caranya memperbesar kapasitas maximum upload di web server yang memakai web server apache untu… Read More...
Panduan Install Php 7 Di Ubuntu Server 16.04 Lts PHP, merupakan salah satu bahasa pemrograman yang terkenal dan banyak dipakai di dunia ini. Umumnya PHP dipakai untuk menciptakan aplikasi… Read More...
0 Response to "Script Php D0wnl0ad Gambar Dengan Curl"
Posting Komentar