PHP ile başka siteden içerik çekerken file_get_content() methodunu 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çeği explode() methoduyla 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.
[PHPR]$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>";[/PHPR
]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ıkecho trim($a); // çıktımızdaki boşlukları sildirip okuduk (boşlukları sildirmek istemiyorsanız trim() methodunu kaldırabilirsiniz)
} //döngüyü sonlandırdıkİşlemler bu kadardı. Umarım işinize yaramıştır
Kaynak:
PHP ile Başka Siteden İçerik Çekme
Bir sonraki konu başlığım: PHP için önemli 5 fonksiyon
İçeriği: str_replace, preg_replace, substr, explode, trim