Script Php D0wnl0ad Gambar Dengan Curl

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 _yudha58

Subscribe to receive free email updates:

0 Response to "Script Php D0wnl0ad Gambar Dengan Curl"

Posting Komentar