Başka siteden veri çekmek

0
Onaylı Üye
Üye
Katılım
27 Ekim 2004
Mesajlar
1,817
Tepki puanı
51
Konum
makedonya
Selam arkadaşlar,

file_get_contents veya başka bir değişken kullanarak sitenin html kodları arasından örnek 3. satır ile 29. satır arasının hepsini çektirebilir miyim?
 
0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Tepki puanı
4
Arkadaşım tabii ki yapabilirsin. Yalnız istediğin satırların değişmeyeceğine eminsen o satırları gösterebilirsin:

PHP:
<?php
$adres = 'http://forum.iyinet.com/';
$sayfa = file($adres);
for($i=3; $i <= 29; $i++) echo $sayfa[$i]."\r\n";
?>

veya file_get_contents ile alacaksan önce bölmen gerekir explode ile, çünkü tek değişken olarak döner:
PHP:
<?php
$sayfa = file_get_contents($adres);
$sayfa = explode("\n",$sayfa);
for($i=3; $i <= 29; $i++) echo $sayfa[$i]."\r\n";
?>

gibi.
 
0
Onaylı Üye
Üye
Katılım
27 Ekim 2004
Mesajlar
1,817
Tepki puanı
51
Konum
makedonya
Çok teşekkür ederim birazdan deneyeceğim.. Ayrıca bir iki sıkıntım daha olabilir onuda yazarım yardımcı olursanız memnun olurum :)
 
0
Onaylı Üye
Üye
Katılım
27 Ekim 2004
Mesajlar
1,817
Tepki puanı
51
Konum
makedonya
2:45 PMET
Alba Berlin vs Bizkaia Bilbao Basket
20:45CET

şu şekilde sorunsuz bir şekilde çekiyor.. Ben bunun sadece kalınla olan yerini çektirmek istesem içeriğindeki linkiyle beraber olabilir mi?

Yani şöyle anlatayim..

O 3 ile 29 satırları arasında şöyle 10 - 20 tane kod var.

<td align="right"><b>10:30 PM</b></td><td align="left"><b>ET</b></td>
<td width="26px" height="13px"><img src="http://3.bp.blogspot.com/_h9hhsY9crXk/SYIIp0CXyrI/AAAAAAAAAAk/-XGRau5_u-I/s320/football.gif" width="13" height="13" /></td>
<td width="550px" align="left"><b><a href="17535/watch-la-galaxy-vs-real-salt-lake" onClick="newwindow('17535/watch-la-galaxy-vs-real-salt-lake', '17535'); return false;">LA Galaxy vs Real Salt Lake</a></b><font style="font-size: 8px;"> </font></td>
<td align="right"><b>04:30</b></td><td align="left"><b>CET</b></td>
</tr>

Ben o satırlar arasından sadece

<td width="550px" align="left"><b><a href="17535/watch-la-galaxy-vs-real-salt-lake" onClick="newwindow('17535/watch-la-galaxy-vs-real-salt-lake', '17535'); return false;">LA Galaxy vs Real Salt Lake</a></b><font style="font-size: 8px;"> </font></td>

kısmını almak istiyorum :eek:
 
0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Tepki puanı
4
Arkadaşım söylediğin şekilde yapmak için regex(düzenli ifade) ile almak lazım. İstediğin sayfada 9-10 tane td tagları arasında linkleri varda onların tamamını mı almak, yoksa bir tane var da onu mu almak. Onu tam olarak belirtirsen yardımcı oluyum.
 
0
Onaylı Üye
Üye
Katılım
27 Ekim 2004
Mesajlar
1,817
Tepki puanı
51
Konum
makedonya
Yok hayır birtane değil..

<td width="550px" align="left">
ile başlayan yerleri yani kısaca..

Ben konu ile ilgili siteyi p.m atıyorum sana ozaman daha iyi anlarsın zaten, bu arada çok çok teşekkür ediyorum yardımların için..
 
0
Onaylı Üye
Üye
Katılım
3 Şubat 2010
Mesajlar
328
Tepki puanı
8
Konum
istanbul
PHP:
$cek = file_get_contents($site);
preg_match('#(<td width="550px" align="left">)(.*?)(</td>)#si',$cek,$av);
$cikti = $av[1].$av[2].$av[3];
echo $cikti;

// ya da
$cek = file_get_contents($site);
preg_match('#<td width="550px" align="left">(.*?)</td>#si',$cek,$av);
$cikti = '<td width="550px" align="left">'.$av[1].'</td>';
echo $cikti;
 
0
Onaylı Üye
Üye
Katılım
27 Ekim 2004
Mesajlar
1,817
Tepki puanı
51
Konum
makedonya
PHP:
$cek = file_get_contents($site);
preg_match('#(<td width="550px" align="left">)(.*?)(</td>)#si',$cek,$av);
$cikti = $av[1].$av[2].$av[3];
echo $cikti;

// ya da
$cek = file_get_contents($site);
preg_match('#<td width="550px" align="left">(.*?)</td>#si',$cek,$av);
$cikti = '<td width="550px" align="left">'.$av[1].'</td>';
echo $cikti;

beyaz sayfa çıktı :eek:
 
0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Tepki puanı
4
Sayfada aynı kısımlardan birden fazla varsa bu şekilde alabilirsin, ama pm de verdiğin adreste öyle bir şey yok, yanlış görmediysem:)

PHP:
$adres = 'site adresi';
$al = file_get_contents($adres);
preg_match_all('/<td width="550px" align="left">(.*?)<\/td\>/smi',$al,$a);
print_r($a[0]);
 
0
Onaylı Üye
Üye
Katılım
19 Temmuz 2005
Mesajlar
2,014
Tepki puanı
1
Konum
about:blank
$adres = 'site adresi';
$al = file_get_contents($adres);
preg_match_all('/<td width="550px" align="left">(.*?)<\/td\>/smi',$al,$a);
for($i=0;$i<count($a[0]);$i++){
echo $a[0][$i].'<br>';
}

.......
 
0
Onaylı Üye
Üye
Katılım
16 Ocak 2011
Mesajlar
4
Tepki puanı
0
Sayfada aynı kısımlardan birden fazla varsa bu şekilde alabilirsin, ama pm de verdiğin adreste öyle bir şey yok, yanlış görmediysem:)

PHP:
$adres = 'site adresi';
$al = file_get_contents($adres);
preg_match_all('/<td width="550px" align="left">(.*?)<\/td\>/smi',$al,$a);
print_r($a[0]);

Arkadaşlar alıntı yaptığım kod çalışıyor.... array olarak çıktı veriyor galiba print_r den dolayı.. ama asil sorum başka eyer aynı baslıkla baslayan <div class="pan_line"> 10 tane varsa ve ben sadece ilk 3 tanesini çekmek istiyorsam ne yapmalıyım ?

teşekkürler
 
0
Onaylı Üye
Üye
Katılım
14 Ocak 2011
Mesajlar
418
Tepki puanı
4
Konum
/public_html
Arkadaşım tabii ki yapabilirsin. Yalnız istediğin satırların değişmeyeceğine eminsen o satırları gösterebilirsin:

PHP:
<?php
$adres = 'http://forum.iyinet.com/';
$sayfa = file($adres);
for($i=3; $i <= 29; $i++) echo $sayfa[$i]."\r\n";
?>

veya file_get_contents ile alacaksan önce bölmen gerekir explode ile, çünkü tek değişken olarak döner:
PHP:
<?php
$sayfa = file_get_contents($adres);
$sayfa = explode("\n",$sayfa);
for($i=3; $i <= 29; $i++) echo $sayfa[$i]."\r\n";
?>

gibi.

bende deniyim bare :D
 
Geri
Üst