Php Regex Sorunum

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Arkadaşlar regex ile iki şart arasındaki veriyi  preg_match_all('@<a href="/(.*?)"@si',$anasayfakodal,$sehirler);    şeklinde alabiliyorum fakat aşağıdaki şekildeki bir kod da

    <article>
    <h2> sfsfkjsfkjs </h2>
    <h2> sdgsdgsd </h2>
    </article>
    
    <h2> sflsfklsd </h2>



    sadece <article> ile </article> arasındaki kodlar arsında h tagları arasında kalan kısımları almak istiyorum bunu ne şekilde yapabilriiz ?

    Not: kod blogunu örnek olsun diye salladım yoksa bu kadar kısa birşey olsa alternatif yollar üretirdim zaten. Çok daha uzun ve karışık kodlar için bu mantığı soruyorum


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    Bunlar bir parser gerektiren türden işlemler ama Regex bir parser değildir o yüzden bunu çözmek için doğru yol Regex değil @coder2.

    PHP hem derlenmiş eklenti hem de kütüphane zengini bir dil. Bunun için Regex yerine bir DOM parser kullanmanı şiddetle öneririm.

    buzukatak tarafından 15/Kas/15 00:07 tarihinde düzenlenmiştir

    anlıyorum.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Realist
    Realist's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    <article>*</article> arasında kaç tane <h2>*</h2> tagı olduğunu saydırıp sonradan for döngüsünde iki boyutlu array kullanarak yapabilirsin

     

    Realist tarafından 15/Kas/15 03:41 tarihinde düzenlenmiştir

    ..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo
    buzukatak bunu yazdı

    Bunlar bir parser gerektiren türden işlemler ama Regex bir parser değildir o yüzden bunu çözmek için doğru yol Regex değil @coder2.

    PHP hem derlenmiş eklenti hem de kütüphane zengini bir dil. Bunun için Regex yerine bir DOM parser kullanmanı şiddetle öneririm.

    hişşş, tbt'deki çoğu adama regex bile gereksiz

    string find fonksiyonları dururken :D

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    2 adımda yapacaksın, önce preg_match ile article arasındaki datayı çekeceksin. Dönen datanın 0. indexinden, h2 leri preg match all ile çekeceksin.

    tek adımda yapman mümkün değil.

    preg_match('<article>(.*?)<\/article>', $open, $result);

    preg_match_all('<h2>(.*?)<\/h2>', $result[0], $result2);

    gibi...

     


    Hello, i am nothing. I come from Neverland.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Cevaplar için teşekkürler , verdiğiniz bilgiler ışığında sorunu çözdüm. @ozgunlu hocam guzel mantik , bende dediğiniz gibi yapıyordum ama verimlilik kafama takılmisti şahsen ondan tekrar sordum


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Austen
    Austen's avatar
    Kayıt Tarihi: 13/Ağustos/2012
    Erkek

    //

    Austen tarafından 15/Kas/15 11:35 tarihinde düzenlenmiştir
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    1234567B bunu yazdı

    Bunu yazmak için girmiştim. 


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Gerçekten güzel bir yöntemmiş , geç olmuş öğrendiğim ama :)


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
Toplam Hit: 887 Toplam Mesaj: 10
regex