Belli Etiketler Arasındaki Veriyi Alma.
Merhaba,
Regex'i pek bilmediğim için takıldım. Aşağıdaki kırmızı çizgi ile belirttiğim yerler arasındaki veriyi almam gerekiyor.
Kodlar:
<span class="baslik"><font color="#003399"><b>Başlık</b></font></span>
<span class="ingilizce"><i>İng.</i> enterprise</span>
<p class="icerik">Açıklama</p>
<span class="kaynak">Kaynak</span>
<span class="tarih"><a style="text-decoration: none" href="javascript:;" onclick="javascript:mesaj()">1972</a></span>
Php
<span class="baslik"><font color="#003399"><b>Başlık</b></font></span>
<span class="ingilizce"><i>İng.</i> enterprise</span>
<p class="icerik">Açıklama</p>
<span class="kaynak">Kaynak</span>
<?php
$link= file_get_contents('link buraya gelcek');
/* preg_match_all burada 3 parametre alıyor
ilk parametre aranacak
ikinci parametre aranacak yer
üçüncü parametre aranan ve bulunanların aktarılacağı değişken
*/
preg_match_all('#<span class="baslik"><font color="#003399"><b>(.*?)</b></font></span>#',$link,$a);
preg_match_all('#<span class="ingilizce">(.*?)</span>#',$link,$b);
preg_match_all('#<p class="icerik">(.*?)</p>#',$link,$c);
preg_match_all('#<span class="kaynak">(.*?)</span>#',$link,$d);
echo '<pre>';
print_r ($a);
echo '</pre>';
/*
print_r() fonksiyonu bulunanların arraylarını
ekrana basar arraylar içerisindeki hangi array sizin
aradığınız ise şu şekilde çekersiniz.
örn; aradığınız birinci array ise.
echo $a[1];
echo $b[1];
echo $c[1];
echo $d[1];
*/
?>
Dediklerinizi yaptım; fakat dizilerin içi boş
Php
Normalde bos gelmemesi lazim bilgileri cekmek istediginiz linki paylasirsaniz birde ben bakabilirmiyim
Buradaki spanclasslarında içindeki verileri almaya çalışıyorum.
http://marifetlikadin.com/ornek.htm
Yardımların için teşekkürler.
Php
function bul($s,$f,$d)
{
preg_match('#'.preg_quote($s).'(.*?)'.preg_quote($f).'#is',$d,$r);
return $r[1];
}
kullanımı;
bul('başlangıç etiketi','bitiş etiketi','arama yapılcak string');
işinizi görür sanırım.
Php
Aşağıdaki kodlarla, span içindeki verileri neden alamıyorum?
preg_match_all('#<span class="(.*?)">(.*?)</span>#', $kaynak, $a);
print_r ($a)
Php
preg_match_all('#<span class="(.*?)">(.*?)</span>#is', $kaynak, $a);
birde böyle deneyin
Yazdığım kod daha önce çalışmamıştı, şimdi çalıştı. Bir kod, bi çalışıp bi neden çalışmaz?