Şimdi Ara

preg_match_all kullanarak istenilen kısımın alınması

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
1.513
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • http://futbol.superstadyum.net/

    bu sitede kaynak kodunda
    <div class="wrapper">


    </div>
    arasındaki kodlardan yayın linklerini almam lazım ve bu yayın linkleri
     
    <a href='http://futbol.superstadyum.net/174522/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 1</a> -
    <a href='http://futbol.superstadyum.net/174482/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 2</a> -
    <a href='http://futbol.superstadyum.net/174487/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 3</a> -
    <a href='http://futbol.superstadyum.net/174488/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 4</a> -
    <a href='http://futbol.superstadyum.net/174489/sao-paulo-fc-ponte-preta-macini-canli-izle' target='_blank'>Kanal 5</a>


    gibi mesala, burdaki canlı-izle ile biten linkleri alarak bir değişkene atamam lazım siz sadece almayı öğretseniz gerisini ben halladebilirim sanırım

    kodlarım

     
    <?php
    include 'baglan.php';
    $site = 'http://futbol.superstadyum.net/';
    $Baglan = baglan($site);
    preg_match_all('@<div class="wrapper">>(.*?)</div>@siU',$Baglan,$Kanallar);
    yaz($Kanallar) ?>


    [size=4]bir türlü olmuyor / ve \ işaretleri ile birşeyler yapılıyor sanırım bu / \ işaretlerin mantığınıda bilmiyorum



    _____________________________




  • Hiç mantığa gerek yok sadece biraz mantık yürütmek lazım bilgi seviyeni bilmediğimden biraz acemi gibi davranıcam bütün kodları açıklayarak aklındaki soru işaretlerini kaldırmaya çalışıcam.
     
    <?php
    $site = file_get_contents("http://futbol.superstadyum.net/"); // Siteye Bağlanır
    $sozcuk = "#<div class=\"div_kanallar\">\s*<a href='(.*?)' target='_blank'>(.*?)</a>\s*</div>#si";
    $bsozcuk = "#<div class=\"div_baslik\">\s*<div class=\"div_bayrak\"><img src=\"(.*?)\" style=\"vertical-align: middle;padding-right:2px;\" /></div><b>(.*?)</b></div>#";
    preg_match_all($sozcuk,$site,$cikti); // Sözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
    preg_match_all($bsozcuk,$site,$cikti2); // BSözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
    $sayi = count($cikti); // Çıktı Sayısını Sayar
    for($s=0; $s<$sayi; $s++){ // Burası Çıktı sayısı kadar döngü oluşturur
    $link = $cikti[1][$s];
    $kanal = $cikti[2][$s];
    $baslik = $cikti2[2][$s];
    ?>
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=71462431&url=<?=$link;?>" data-href="<?=$link;?>"><?=$baslik;?><?=$kanal;?></a><br/> <!-- Yazdırır ->
    <?php } ?>

    Burada bilmen gerekenler \s* arada boşluk veya herhangi bir karakter varsa direk geçer (.*?) seçme işini yapar sonundaki #si preg_match_all ifadesidir. $cikti[arraynumarası][Sayı] şeklinde çalışır ilk <a href='(.*?)' olduğu için $link = $cikti[1][$s]; dediğimizde her döngüde kendine ait linki çekicektir. kendi localhostumda denedim eğer yanlış anlamamışsam sorunsuz çalışıyor
    Edit : fonksiyon kullanma hiç gerek yok file_get_contents("http://futbol.superstadyum.net/"); aynı görevi görür



    < Bu mesaj bu kişi tarafından değiştirildi hakk1 -- 9 Şubat 2013; 8:06:50 >
    _____________________________




  • quote:

    Orijinalden alıntı: hakk1

    Hiç mantığa gerek yok sadece biraz mantık yürütmek lazım bilgi seviyeni bilmediğimden biraz acemi gibi davranıcam bütün kodları açıklayarak aklındaki soru işaretlerini kaldırmaya çalışıcam.
     
    <?php
    $site = file_get_contents("http://futbol.superstadyum.net/"); // Siteye Bağlanır
    $sozcuk = "#<div class=\"div_kanallar\">\s*<a href='(.*?)' target='_blank'>(.*?)</a>\s*</div>#si";
    $bsozcuk = "#<div class=\"div_baslik\">\s*<div class=\"div_bayrak\"><img src=\"(.*?)\" style=\"vertical-align: middle;padding-right:2px;\" /></div><b>(.*?)</b></div>#";
    preg_match_all($sozcuk,$site,$cikti); // Sözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
    preg_match_all($bsozcuk,$site,$cikti2); // BSözcük kriterine uygun olarak siteyi tarar $cikti olarak verir
    $sayi = count($cikti); // Çıktı Sayısını Sayar
    for($s=0; $s<$sayi; $s++){ // Burası Çıktı sayısı kadar döngü oluşturur
    $link = $cikti[1][$s];
    $kanal = $cikti[2][$s];
    $baslik = $cikti2[2][$s];
    ?>
    <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=73564229&url=<?=$link;?>" data-href="<?=$link;?>"><?=$baslik;?><?=$kanal;?></a><br/> <!-- Yazdırır ->
    <?php } ?>

    Burada bilmen gerekenler \s* arada boşluk veya herhangi bir karakter varsa direk geçer (.*?) seçme işini yapar sonundaki #si preg_match_all ifadesidir. $cikti[arraynumarası][Sayı] şeklinde çalışır ilk <a href='(.*?)' olduğu için $link = $cikti[1][$s]; dediğimizde her döngüde kendine ait linki çekicektir. kendi localhostumda denedim eğer yanlış anlamamışsam sorunsuz çalışıyor
    Edit : fonksiyon kullanma hiç gerek yok file_get_contents("http://futbol.superstadyum.net/"); aynı görevi görür

    çok teşekkür ederim saolsın
    _____________________________




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.