Php Curl ile Instagram Resim İndirme | Turkish Tutorial
English Description
Hello friends In this article I will try to tell you how to download the images published in instagram with php and give them to the user visually.
First of all, let's talk about how we're going to do something. With the help of html form tags, the instagram will post the url information in the image. We will check if the url information of the instagram image is checked with if control. If it is posted, we will connect to the image source page with the image cURL and get the url information of the image, then we will link to the source in this image and download the instagram image. The functions we will use are isset, preg_match, uniqid, file_put_contents. I will include in detail below how these functions are used and how they are used. I hope it will be useful for you.
Türkçe Açıklama
Merhaba arkadaşlar bu yazımda sizlere php ile instagramda ki yayınlanan resimleri nasıl sunuzumuza indirip kullanıcıya veririz görsel şekilde anlatmaya çalışacağım.
Öncelikle nasıl birşey yapacağımızdan bahsedelim. Html form etiketlerinin yardımı ile instagram resim url bilgisini post ettireceği. if kontrolü ile instagram resim url bilgisinin post edilip edilmediğini kontrol edeceğiz eğer post edilmişse resim curl ile resim kaynak sayfasına bağlanıp resmin url bilgisini alacağız daha sonra bu resminde kaynağına bağlanıp instagram resmini indireceğiz. Yararlanacağımız fonksiyonlar isset, preg_match, uniqid, file_put_contents fonksiyonlarıdır. Bu fonksiyonların ne işe yaradığınız nasıl kullanıldığına aşağıda detaylı şekilde yer vereceğim. Umarım sizler için yararlı olur.
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
Github Proje Linki;
https://github.com/Ruhum36/Instagram-Image-Save-Script
index.php
<?php
### Coded By Ruhum 20.12.2017
require('Fonksiyonlar.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>Instagram Image Save</title>
<style type="text/css">
*{
font-family: arial;
background-color: #effffe;
}
</style>
</head>
<body>
<div>
<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" /><br />
<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>
</div>
<?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>
Fonksiyonlar.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;
}
?>
Genel Görseller;
Kodlar ve Açıklamaları;
<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" /><br />
<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>
Bu kısımda instagram resim url bilgisini alabilmek için standart html etiketleri yardımı ile formumuzu oluşturuyoruz.
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>';
}
}
Kodların açıklamasını resimde görünen satır sayıları var. O sayıları baz alarak size kodların açıklamalarını yapmaya çalışacağım.
-36. Satır: isset yardımı ile instagram resim url bilgisi post edilmiş mi diye kontrol ediyoruz. isset bize boolean değer çevirdiği için bunuda if ile kontrol ediyoruz.
-39. Satır: Gelen url bilgisine connect fonksiyonumuz ile bağlanıyoruz.
-40. Satır: preg_match fonksiyonun yardımı ile instagramdaki resmin url adresini alıyoruz. Bunuda $Image değikenine aktarıyoruz. Eğer herhangi bir değer bulamazsa false $Image değişkenine false değerini atayacaktır.
-42. Satır: Resim url varmı yokmu diye kontrol ediyoruz.
-44. Satır: uniqid fonksiyonu ile yeni bir resim adı oluşturuyoruz.
-45. Satır: Resim url adresine bağlanarak kaynak kodlarını $Source değişkenine aktarıyoruz.
-46. Satır: file_put_contents yardımı ile aldığımız resmin kaynağını sunucuya belirttiğimiz isimde yazdırıyoruz.
-48. 49. Satır: Yazılan resim sonucu ve sunucuya yazdırdığımız resmi ekrana yazdırıyoruz.
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. Elimden geleni seve seve yaparım. Umarım hepiniz için yararlı bir konu olmuştur.
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @ruhum I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x