Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Başka siteden veri çekmek

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
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?
 

metadige

0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Açılan Konu
21
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.
 

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
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 :)
 

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
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:
 

metadige

0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Açılan Konu
21
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.
 

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
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..
 

Invictus

0
Onaylı Üye
Üye
Katılım
4 Şubat 2010
Mesajlar
328
Açılan Konu
5
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;
 

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
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:
 

metadige

0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Açılan Konu
21
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]);
 

*siber*

0
Onaylı Üye
Üye
Katılım
20 Temmuz 2005
Mesajlar
2,014
Açılan Konu
108
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>';
}

.......
 

solaxay

0
Onaylı Üye
Üye
Katılım
17 Ocak 2011
Mesajlar
4
Açılan Konu
0
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
 

mb.js

0
Onaylı Üye
Üye
Katılım
15 Ocak 2011
Mesajlar
418
Açılan Konu
52
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
 
Üst