PHP ile Başka Siteden İçerik Çekme

PHP ile başka siteden içerik çekerken file_get_content() metodunu kullanıyoruz.

Örnek kullanım:

$site = file_get_contents('site_linki');

Bu şekilde tüm sayfayı çekebilirsiniz ancak büyük ihtimalle bütün sayfayı çekmek değil, sayfadaki belli bir kısmını çekmek isteyeceksiniz. Bu yüzden gelen içeriği explode() metoduyla parçalayıp bir diziye atıcaz ve buradan istediğimiz bölümü okutucaz.

Örneğin çektiğiniz sayfanın içeriğindeki “<div id=”alakasız sayılar”>” bölümlerini çekmek istediğinizi ve 10 tane div bölümü olduğunu varsayalım.

$array = explode("<div", $site); // burada içeriği $array dizesine atadık

Öncelikle elimizdeki verileri görmek için dizimizin adımlarını okutalım:

echo "<pre>";
echo print_r($array);
echo "</pre>";

Eğer istediğiniz gibi bölünmediyse explode() methodundaki böldürdüğünüz yazının sayfanın kaynak koduna yansıdığından emin olun. Örneğin ajax ile işlem yaptırıldığında döndürülen sonuç kaynak koda yansımadığı için bu tarz içerikleri çekerken file_get_content() methodu işe yaramamakta. Eğer istediğiniz değerlere bölebildiyseniz aşağıdaki adımlardan devam edebilirsiniz.

Şimdi bu dizilerdeki istemediğimiz bölümler varsa çıkartalım. Bunun içinde dizimizi döngüye alıp her bir indis için str_replace() ya da preg_replace() fonksiyonlarını kullanalım.

for ($i=1; $i <10; $i++) { // dizimizde 10 verimizin olduğunu varsaydığımız için sınırı 10 belirledim
if(!$array[$i]){ // bu şartlandırma dizinin sınırları bilinmediğinde kullandığım bir şart, olabilme ihtimali en yüksek olandan daha büyük sınır girip boş değer döndüğünde döngüyü sonlandırıyorum, dizinin veri sayısını biliyorsanız burayı silebilirsiniz
break;
}
$vid = substr($array[$i], 5,3); // div id'mizin rastgele sayılardan oluştuğunu varsaymıştık, eğer böyle bir durumla karşı karşıyaysanız substr(dizi_adi, kaçıncı_karakterden_itibaren_sayacağı, kaç_karakter_sayacağı) şeklinde kullanıp id'ye geldiğiniz yerden itibaren id'nin karakter sayısı kadar saydırarak id'yi çekebilirsiniz.
$a = str_replace("kaldirilcak_icerik", "", $array[$i]); // burada kaldırılmasını istediğiniz içeriği seçip kaldırdık
echo trim($a); // çıktımızdaki boşlukları sildirip okuduk (boşlukları sildirmek istemiyorsanız trim() methodunu kaldırabilirsiniz)
} //döngüyü sonlandırdık

İşlemlerimiz bu kadardı, bir sorunla karşılaşırsanız yorumlarda belirtebilir ya da iletişim bölümünden iletişime geçebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir