• 08-04-2009, 01:04:24
    #1
    Üyeliği durduruldu
    arkadaşlar bir dosya içerisindeki tüm href='' lerin içeriğini almaya çalışıyorum. ama bi türlü başaramadım.
    <?php
    $dosya = file_get_contents("http://www.wpturk.net/a.html");
    $dizi = preg_match_all("/(href=')(.*?)(')/i",$dosya,$yaz); 
    echo $yaz[0];
    ?>
    buradaki yanlışlık nedir sizce??
  • 08-04-2009, 01:24:24
    #2
    preg_match("#<a href='(.*?)'>(.*?)</a>#i",$dosya,$yaz);
    echo $yaz[1];
    Görüntü : sozler/nazan-oncel/a-bu-hayat.html
    ------------------
  • 08-04-2009, 01:31:26
    #3
    Ntie adlı üyeden alıntı: mesajı görüntüle
    preg_match("#<a href='(.*?)'>(.*?)</a>#i",$dosya,$yaz);
    echo $yaz[1];
    Görüntü : sozler/nazan-oncel/a-bu-hayat.html
    ------------------
    hepsini almak istiyorsa preg_match_all
    <?php
    $dosya = file_get_contents("http://www.wpturk.net/a.html"); 
    preg_match_all("#<a href='(.*?)'>(.*?)</a>#i",$dosya,$yaz);
    print_r($yaz[1]); //linkler
    print_r($yaz[2]); //link kelimeleri
    ?>
  • 08-04-2009, 01:43:49
    #4
    Ben mantığını çözer diye o şekilde yazmıştım yani $yaz[2]'i mahsus atadım
  • 08-04-2009, 10:42:35
    #5
    Üyeliği durduruldu
    arkadaşlar çok teşekkürler...

    edit: normal bir dizide, dizinin elemanlarını saydırıp for döngüsü ile dizinin tüm elemanlarını yazdırabiliyorum. bunu preg_match_all ile oluşturulan diziye nasıl uygulayabilirim??
  • 08-04-2009, 10:49:56
    #6
    Üyeliği durduruldu
    [KaDeSigN] adlı üyeden alıntı: mesajı görüntüle
    arkadaşlar çok teşekkürler...
    edit: normal bir dizide, dizinin elemanlarını saydırıp for döngüsü ile dizinin tüm elemanlarını yazdırabiliyorum. bunu preg_match_all ile oluşturulan diziye nasıl uygulayabilirim??
    pregmatch den dönen diziyi for yada foreach ile dönebilirsiniz

    for($i=0;$i<count($dizi);$i++){
        echo $dizi[$i]."<br />";
    }
    yada

    foreach($dizi as $key => $value){
        echo $key ."=>".$value."<br />";
    }
  • 08-04-2009, 10:51:58
    #7
    Üyeliği durduruldu
    @sdemirkeser teşekkürler... şimdi aklıma geldi nasıl yapılacagı. dünden beri sadece bununla ugrastıgım için kafa kalmadı... teşekkürler...
  • 08-04-2009, 10:53:14
    #8
    Üyeliği durduruldu
    [KaDeSigN] adlı üyeden alıntı: mesajı görüntüle
    @sdemirkeser teşekkürler... şimdi aklıma geldi nasıl yapılacagı. dünden beri sadece bununla ugrastıgım için kafa kalmadı... teşekkürler...
    rica. foreach daha pratiktir.

    sadece dizinin içeriğine erişmen gerekiyorsa

    foreach($dizi as $value){
        echo $value."<br />";
    }
    şeklindede kullanabilirsin
  • 08-04-2009, 11:05:56
    #9
    Üyeliği durduruldu
    <?php
    $dosya = file_get_contents("http://www.wpturk.net/soz.php"); 
    preg_match_all("#<a href='(.*?)'>(.*?)</a>#i",$dosya,$yaz);
    
    $say = count($yaz[1]);
    echo "<b>$say</b><br>";
    
    for($i=0; $i<=$say-1;$i++){
    echo "$yaz[1][$i]<br>";
    }
    
    ?>
    bu kod hata veriyor. aşagıda ki de yanyana sıralıyor. ben altalta sıralamak istiyorum.

    <?php
    $dosya = file_get_contents("http://www.wpturk.net/soz.php"); 
    preg_match_all("#<a href='(.*?)'>(.*?)</a>#i",$dosya,$yaz);
    
    $say = count($yaz[1]);
    echo "<b>$say</b><br>";
    
    for($i=0; $i<=$say-1;$i++){
    print_r ($yaz[1][$i]);
    }
    
    ?>