İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Başka siteden veri çekmek

OnuR

0
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
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
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
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
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
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
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
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
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
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
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
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
İyinet Üyesi
Katılım
4 Şubat 2010
Mesajlar
328
Reaction score
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
İyinet Üyesi
Katılım
28 Ekim 2004
Mesajlar
1,817
Reaction score
52
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
İyinet Üyesi
Katılım
23 Aralık 2005
Mesajlar
354
Reaction score
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]);
 

solaxay

0
İyinet Üyesi
Katılım
17 Ocak 2011
Mesajlar
4
Reaction score
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
 

Mustafa Berk Çörtoğlu

0
İyinet Üyesi
Katılım
15 Ocak 2011
Mesajlar
418
Reaction score
5
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
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst