• 08-08-2010, 20:02:04
    #1
    S.a. arkadaşlar,

    $desen = '#<a class="a" href="(.*?)[u=http://www\.{domainadi}\.com/$]">(.*?)</a>#si';
    preg_match_all($desen,$veri,$dizi,PREG_PATTERN_ORDER);
    print_r($dizi[1]);
    Dediğim zaman tek bir sonuç bulması gerekiyorken. Bütün sonuçları listeliyor. Ben sadece belirtiğim domain adı geçen kısımların çıkmasını istiyorum.Baya fazla düzenli ifade yazmama ragmen bir türlü eşleştirme yapamıyorum. Kodun son hali yukardaki şekilde. Regex konusunda deneyimli arkadaşlardan bir yardım rica ediyorum.

    Saygılar..
  • 09-08-2010, 01:54:31
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    preg_match_all tüm eşleşmeleri alır; preg_match sadece birinci eşleşmeyi...

    Ayrıca, deseniniz bana yandan çarklı () geldi. Aşağıdakini deneyebilirsiniz:
    $dizi = preg_match('~<a href="([^"]+)"[^>]*>(.+?)<\/a>~is', $veri, $dizi) ? $dizi[1] : 'Adres Alınamadı' ; // Burda değişken olarak tanımlamamızın özel bir anlamı yok. Sadece el alışkanlığım.
    echo $dizi;
  • 09-08-2010, 03:13:09
    #3
    aLKaDraZ adlı üyeden alıntı: mesajı görüntüle
    S.a. arkadaşlar,

    $desen = '#<a class="a" href="(.*?)[u=http://www\.{domainadi}\.com/$]">(.*?)</a>#si';
    preg_match_all($desen,$veri,$dizi,PREG_PATTERN_ORDER);
    print_r($dizi[1]);
    Dediğim zaman tek bir sonuç bulması gerekiyorken. Bütün sonuçları listeliyor. Ben sadece belirtiğim domain adı geçen kısımların çıkmasını istiyorum.Baya fazla düzenli ifade yazmama ragmen bir türlü eşleştirme yapamıyorum. Kodun son hali yukardaki şekilde. Regex konusunda deneyimli arkadaşlardan bir yardım rica ediyorum.

    Saygılar..


    <?
    $siteler = array(
    1 => "<a href='http://www.kralforumcu.net'>Kralforumcu.net</a>",
    2 => "<a href='http://www.kralforumcu.com'>Kralforumcu.com</a>",
    3 => "<a href='https://www.r10.net'>r10</a>",
    4 => "<a href='http://www.google.com'>Google.com</a>"
    );
    foreach ($siteler as $deger) 
    {
        echo (preg_match("/<a href='http:\/\/www\.(.*)([kralforumcu])\.net'>(.*?)<\/a>/i",$deger,$cikti))?"Aradıgınız Deger Bumu ?? <br>".$cikti[0]:"";
    }
    ?>
    Çıktısı
    //Aradıgınız Deger Bumu ?? 
    //Kralforumcu.net
  • 09-08-2010, 15:43:17
    #4
    Malesef arkadaşlar sizinkilerde olmadı. Uzun yolu seçerek hallettim. İlginizden dolayı her ikinizede rep gönderiyorum. Teşekkürler
    Aşağıdaki kod bana ait değildir. Hak geçmesin.
    $desen = "#<a\s(?:[^\s>]*?\s)*?href=\"(.*?)\".*?>#si";
    preg_match_all($desen,$veri,$dizi,PREG_PATTERN_ORDER);
    foreach($dizi[1] as $sonuc){
        if(strstr($sonuc,'domainadi')){
            echo $sonuc;
        }
    }