PHP ile Başka Sitelerden Veri Çekmek Herkesin mutlaka işine yaracağı bir işlem. Bazen küçük detayları sitenize çekmeniz gerekebilir. Bu bir hava durumu olabilir, döviz kuru olabilir. Bu işlem sayesinde dilediğiniz birçok siteden istediniz kısmı verisel olarak çekebilirsiniz.
Ben örneklemeyi 1yuz.com üzerinden gerçekleştireceğim. Sitenin header kısmında yer alan birkaç döviz kurunun verisini sistemimize çekeceğiz.
Değişkenimiz yukarıdaki gibi. Önemli kısım ise $hedef_site değerinin karşılığına yazacağımız site ve $veri_adi aralığına gireceğimiz div kısmı. Hedef sitemiz olan 1yuz.com üzerinden baz aldığım örnekte, header kısmında yer alan kur değerleri <span class="menu-row2">içerik</span> aralığında yer aldığı için $veri_adi fonksiyonuna bu span aralığını uyarladık.
Şimdi yapacağımız işlem ise çektiğimiz verileri sitemiz üzerinde göstermek. Kodumuz aşağıdaki gibi.
php Burada dikkat etmemiz gereken olay $veri_adi[0] değerinin sonundaki 0 sayısının önemi. Eğer sonu 0 olursa ayarladığımız span dizininden aynı olanlar arasında ilkini çekecektir, 0 yerine 1 değerini verirsek ilkini değil bir sonrakini çekecektir. Bu işlem bu şekilde devam etmekte. Ben 0-1-2 olarak ayarladım. İlk veri 1yuz.com headerında sırasıyla bulunan altın, dolar ve euro şeklinde çekiyor.
Ben örneklemeyi 1yuz.com üzerinden gerçekleştireceğim. Sitenin header kısmında yer alan birkaç döviz kurunun verisini sistemimize çekeceğiz.
Kod:
<?php
function uzaktan_veri($baslat, $son, $cekilecek_veri)
{
@preg_match_all('/' . preg_quote($baslat, '/') .
'(.*?)'. preg_quote($son, '/').'/i', $cekilecek_veri, $m);
return @$m[1];
}
$hedef_site = "https://www.1yuz.com/";
$veri = file_get_contents($hedef_site);
$veri_adi = uzaktan_veri('<span class="menu-row2">','</span>',$veri);
?>
Şimdi yapacağımız işlem ise çektiğimiz verileri sitemiz üzerinde göstermek. Kodumuz aşağıdaki gibi.
Kod:
<?php echo "
<a class='kur'><b>Altın</b> " . $veri_adi[0] . "</a>
<a class='kur'><b class='buyukluk'>"</a>
<a class='kur'><b class='buyukluk'> "</a>
<a class='kur'><b class='buyukluk'>$</b> "lt;/b> "lt;/b> " . $veri_adi[1] . "</a>
<a class='kur'><b class='buyukluk'>€</b> " . $veri_adi[2] . "</a>
"; ?>