• 21-04-2019, 21:42:33
    #1
    aşağıdaki kodu kullanarak belirlediğim sitedeki başlıkları çekmek istiyorum ancak hedef siteden sadece ilk başlığı alıyor. devamını alması için ne yapabilirim yardımcı olabilirsimisinz?

    <?php
    
    function getir($baslangic, $son, $cekilmek_istenen)
    {
    @preg_match_all('/' . preg_quote($baslangic, '/') .
    '(.*?)'. preg_quote($son, '/').'/i', $cekilmek_istenen, $m);
    return @$m[1];
    }
    $sayi = 0;
    $url = "http://www.ortadogugazetesi.com/arsiv.php?c=mhp";
    
    $icerik = file_get_contents($url);
    
    $haberbasligi = getir('<h3 class="hbr_title">','</h3>',$icerik);
    
    echo "<b>Başlık :</b> " . $haberbasligi[0] . "<br />";
    
    ?>
  • 21-04-2019, 22:03:50
    #2
    <?php for ($i = 0; $i<count($haberbasligi); $i++) [
    echo "<b>Başlık :</b> " . $haberbasligi[$i] . "<br />";
    } ?>
    Bu şekilde oldu mu?
  • 21-04-2019, 22:09:50
    #3
    Onur89TR adlı üyeden alıntı: mesajı görüntüle
    <?php for ($i = 0; $i<count($haberbasligi); $i++) [
    echo "<b>Başlık :</b> " . $haberbasligi[$i] . "<br />";
    } ?>
    Bu şekilde oldu mu?
    bu kezde sayfadakı 2. başlığı aldı hocam
  • 21-04-2019, 22:34:44
    #4
    @RiskForDream;

    <?php

    function baslikCek($url)
    {
    $veri = file_get_contents($url);
    preg_match_all('@<h3 class="hbr_title">(.*?)</h3>@si', $veri, $cikti);
    foreach($cikti[1] as $keys) {
    echo $keys; // baslik
    echo "<br>";
    }
    }

    for ($i = 1; $i <= 10; $i++) { // 10 yazan yer çekilecek sayfa sayısı
    baslikCek("http://www.ortadogugazetesi.com/arsiv.php?c=mhp&sayfa=" . $i);
    }

    ?>
  • 21-04-2019, 22:37:25
    #5
    Cankat adlı üyeden alıntı: mesajı görüntüle
    @RiskForDream;

    <?php

    function baslikCek($url)
    {
    $veri = file_get_contents($url);
    preg_match_all('@<h3 class="hbr_title">(.*?)</h3>@si', $veri, $cikti);
    foreach($cikti[1] as $keys) {
    echo $keys; // baslik
    echo "<br>";
    }
    }

    for ($i = 1; $i <= 10; $i++) { // 10 yazan yer çekilecek sayfa sayısı
    baslikCek("http://www.ortadogugazetesi.com/arsiv.php?c=mhp&sayfa=" . $i);
    }

    ?>
    destegınız ıcın tesekkurler hocam hemen deniyorum



    Cankat adlı üyeden alıntı: mesajı görüntüle
    @RiskForDream;

    <?php

    function baslikCek($url)
    {
    $veri = file_get_contents($url);
    preg_match_all('@<h3 class="hbr_title">(.*?)</h3>@si', $veri, $cikti);
    foreach($cikti[1] as $keys) {
    echo $keys; // baslik
    echo "<br>";
    }
    }

    for ($i = 1; $i <= 10; $i++) { // 10 yazan yer çekilecek sayfa sayısı
    baslikCek("http://www.ortadogugazetesi.com/arsiv.php?c=mhp&sayfa=" . $i);
    }

    ?>
    hocam cok sagolun calıstı
  • 21-04-2019, 22:42:40
    #6
    <?php
    
    $url = "http://www.ortadogugazetesi.com/arsiv.php?c=mhp";
    
    $icerik = file_get_contents($url);
    
    $icerik = str_replace(array("n","t"),null,$icerik);
    
    $icerik = preg_replace("/s+/", " ", $icerik);
    
    // echo $icerik;
    
    preg_match('#<div class="diger_haberler">(.*?)</div><div class="cat-pagination">#',$icerik,$digerhaberler);
    
    preg_match_all('#<div class="news_cat_item">(.*?)</div>#',$digerhaberler[1],$newsitem);
    
    for($i = 0; $i<count($newsitem[1]); $i++) {
        preg_match('#<a .*?<h3 class="hbr_title">(.*?)</h3></a>#',$newsitem[1][$i],$basliklar[$i]);
        echo $basliklar[$i][1]."<br>";
    }
    
    ?>
    PHP functionlarını preg_match dışına yazmanı tavsiye etmem. Bu şekilde kullanman daha sağlıklı. Başlıkları çektim, buyur.




    n ve t ters slashn ve ters slasht olacak. r10 düzenleyicisi tam olarak aktaramıyor o karakteri... Değiştiriyorum yine eski halini alıyor.