Php Curl ile Instagram Resim İndirme

Yararlanacağımız fonksiyonlar;
isset — Değişken tanımlı mı diye bakar. Giriye True veya False yanıtı döndürür.
preg_match — Bir düzenli ifadeyi eşleştirmeye çalışır. Bir ise verdiğimiz reqex desenine göre istediğimiz bölümü alacağız.
uniqid — Eşsiz bir kimlik dizgesi üretir
file_put_contents — Bir dizgeyi bir dosyaya yazar
index.php
<?php
function Connect($Url, $TimeOut = 10, $UserAgent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'){
$Curl = curl_init();
curl_setopt($Curl, CURLOPT_URL, $Url);
curl_setopt($Curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($Curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($Curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($Curl, CURLOPT_TIMEOUT, $TimeOut);
curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, false);
$Sonuc = curl_exec($Curl);
curl_close($Curl);
return $Sonuc;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Instagram Fotoğraf İndirme - Ali Şahan Yaqlçın</title>
<style type="text/css">
*{
font-family: arial;
background-color: #effffe;
}
</style>
</head>
<body>
<center>
<h2>Instagram Image Save</h2>
</center>
<form action="" method="POST" style="width: 500px; margin: auto;">
<input type="text" name="ImageUrl" style="padding: 10px; width: 450px; border-radius: 3px; border: 1px solid #ddd;" placeholder="Image URL" />
<input type="submit" value="Save Image" style="padding: 10px; width: 470px; border-radius: 3px; border: 1px solid #ddd; background-color: #f6f6f6; margin-top: 10px;" />
</form>
<?php
if(isset($_POST['ImageUrl'])){
$Url = $_POST['ImageUrl'];
$Source = Connect($Url);
$Image = preg_match('@image" content="(.*?)"@', $Source, $Image)?end($Image):false;
if($Image){
$ImageName = 'images/'.uniqid().'.jpg';
$ImageSource = Connect($Image);
if(file_put_contents($ImageName, $ImageSource)){
echo '<center><h2>Image Saved</h2></center>';
echo '<center><img src="'.$ImageName.'" width="500"></center>';
}
}else{
echo '<center><h2>Image Not Found or Private</h2></center>';
}
}
?>
</body>
</html>
Aklınıza takılan soru olursa, önerileriniz, anlatmamı istediğiniz bir eğitim içeriği varsa lütfen konu altında bana bildirin.
Yorumlar