Devam Et
Logo
Blog
PHP

PHP ile Web Sitesinin Ekran Görüntüsünü Alma

Bir web sitesinin o anki ekran görüntüsünü almaya ihtiyaç duyabilirsiniz. Peki bunu nasıl yaparsınız ? PHP'de bunun yöntemi çok basit. Hadi hep beraber inceleyelim.

İnternette Web Archive adlı siteyi duymuşsunuzdur. Duymayanlar için kısaca açıklayalım. Web Archive, web sitelerinin ilk yayınlandığı günden günümüze kadar belli aralıklarla, o günki hallerini depolayan bir web sitesi. Yani mesela Web Archive'e girdiğinizde Facebook'un 2008'deki arayüzünü görebilirsiniz. (Buradan Web Archive'in web sitesine gidebilirsiniz.) 

Aslında bir arşiv oluşturma fikri çok mantıklı değilmi. Web sitelerinin hepsinin geçmişlerini kontrol et, sakla ve ilerde kullanıcılara "neydii, ne oldu" formatında göster. (Tabi amaç sadece buysa ;))

İşte web sitelerinin ekran görüntüsünü almak böyle bir çalışma için sizlere faydalı olabilir. Veya farklı bir kullanım alanı olarak Google'ı örnek verebiliriz. Son zamanlarda Adsense'e girdiyseniz eğer menüsünde yer alan Geri Bildirim linki dikkatinizi çekmiştir. Burada Geri Bildirim'e tıkladığınızda Google, o sayfanın ekran görüntüsünü alıp göndereceğiniz mesaja ekliyor. Böylece sayfayla ilgili bir sorununuz varsa otomatikmen resimle destekleyerek göndermiş oluyorsunuz. 

Peki web sitesinin ekran görüntüsü nasıl alınır ? 

Bunu yapabilmek için Google'ın PageSpeed Insight API desteğini kullanacağız. Ama API dediysek öyle projeye dahil etmeli falan değil. Kodlar üzerinde anlatayım. 

 

$url = "https://blogaktuel.com";

$screenShot_jSon = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$url&screenshot=true");

Öncelikle $url değişkenimizi tanımlıyoruz. Sonra file_get_contents fonksiyonu yardımıyla, Google'ın PageSpeed API'sine ekran görüntüsünü almak istediğimiz sitenin linkini gönderiyoruz. Bu API linki bize json formatına bir sonuç döndürecektir. 

$screenShot = json_decode($screenShot_jSon, true);

$image = $screenShot['screenshot']['data'];

Dönen json formatındaki sonucu decode edip içerisinde screenshot->data altında bulunan veriyi alıyoruz. Bu veri bizim sitemizin ekran görüntüsünün resim halinin base64 ile kodlanmış hali oluyor. (Ne cümle ama :))

$image = str_replace(array('_','-'),array('/','+'),$image);

echo '<img src="data:image/jpeg;base64,'.$image.'">';

Şimdi sitemizdeki _ ve - karakterlerini sırasıyla / ve + karakterleriyle değiştirip img tagı içerisinde gösteriyoruz. Ve artık istediğiniz sitenin ekran görüntüsü karşısınızda. 

Bunu ister kaydedin, ister farklı bir şekilde kullanın. Hemen size kodların tam halinide paylaşıyorum.

<?php
// Web sitesinin anasayfasından ekran görüntüsü alma
$url = "https://blogaktuel.com";

$screenShot_jSon = file_get_contents("https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=$url&screenshot=true");

$screenShot = json_decode($screenShot_jSon, true);

$image = $screenShot['screenshot']['data'];

$image = str_replace(array('_','-'),array('/','+'),$image);

echo '<img src="data:image/jpeg;base64,'.$image.'">';

?>

Herkese iyi kodlamalar dostlar ;)

Author

Muhammed Yusuf TAŞKESENLİGİL

Hakkında: Hakkında: 2015 Haziran ayında KTÜ Bilgisayar Mühendisliği bölümünden mezun oldum. Yaklaşık 4 yıldır web teknolojileri üzerinde çalışıyorum. HTML, CSS, JavaScript ve PHP alanlarında proje geliştiriyorum. Teknolojiyi seven ve hayatının her alanında kullanan biriyim.

Sayfa Yönlendirme İşlemleri Önceki Yazı
PHP'de Dosya Okuma ve Yazma İşlemleri Sonraki Yazı

0 Yorum

    Henüz hiç yorum eklenmemiş!

Bir Yorumda Sen Bırak