• 27-08-2014, 04:15:18
    #1
    Arkadaşlar bot yapımını öğrenmeye çalışıyorum ve tek satırları preg_match_all ile okuyabiliyorum.Fakat iş çoklu satırlara geldiğinde veriyi okumayı başaramıyorum.

    Örnek bu içerikteki link,resim linki ve ürün ismini alamıyorum.

    <li>
                            <a href="http://www.site.com">
                                <img src="resim linki">
                                <span>Ürün ismi</span>
                            </a>
                        </li>
    Bu kodu nasıl okuyabilirim? Yardımcı olurmusunuz?
  • 27-08-2014, 10:33:13
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    MaxidaTa adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar bot yapımını öğrenmeye çalışıyorum ve tek satırları preg_match_all ile okuyabiliyorum.Fakat iş çoklu satırlara geldiğinde veriyi okumayı başaramıyorum.

    Örnek bu içerikteki link,resim linki ve ürün ismini alamıyorum.

    <li>
                            <a href="http://www.site.com">
                                <img src="resim linki">
                                <span>Ürün ismi</span>
                            </a>
                        </li>
    Bu kodu nasıl okuyabilirim? Yardımcı olurmusunuz?

    preg_match_all('#<a href="(.*?)">#si',$degisken,$degisken );

    Bu şekilde denedinizmi hocam ?
  • 27-08-2014, 13:18:43
    #3
    sawashan adlı üyeden alıntı: mesajı görüntüle
    preg_match_all('#<a href="(.*?)">#si',$degisken,$degisken );

    Bu şekilde denedinizmi hocam ?
    Hocam bu sadece linki alır ama ben her li deki resim linki,url ve ürün ismini almak istiyorum.
  • 27-08-2014, 14:14:17
    #4
    MaxidaTa adlı üyeden alıntı: mesajı görüntüle
    Hocam bu sadece linki alır ama ben her li deki resim linki,url ve ürün ismini almak istiyorum.
    preg_match_all('#<a href="(.*?)"><img src="(.*?)"><span>(.*?)</span>#si',$degisken,$degisken );

    Böyle deneyin hocam eğer olmazsa

    preg_match_all('#<a href="(.*?)">#si',$degisken,$degisken );
    preg_match_all('#<img src="(.*?)">#si',$degisken,$degisken );
    preg_match_all('#<span>(.*?)</span>#si',$degisken,$degisken );

    Tektek alarak deneyin. Ek olarak gelen verileri count ile saydırıp for döngüsüne sokarak hepsini ekrana yazabilirsiniz hocam. Skype adresinizi iletirseniz yardımcı olmaya çalışırım.
  • 27-08-2014, 14:25:50
    #5
    sawashan adlı üyeden alıntı: mesajı görüntüle
    preg_match_all('#<a href="(.*?)"><img src="(.*?)"><span>(.*?)</span>#si',$degisken,$degisken );

    Böyle deneyin hocam eğer olmazsa

    preg_match_all('#<a href="(.*?)">#si',$degisken,$degisken );
    preg_match_all('#<img src="(.*?)">#si',$degisken,$degisken );
    preg_match_all('#<span>(.*?)</span>#si',$degisken,$degisken );

    Tektek alarak deneyin. Ek olarak gelen verileri count ile saydırıp for döngüsüne sokarak hepsini ekrana yazabilirsiniz hocam. Skype adresinizi iletirseniz yardımcı olmaya çalışırım.
    Baştaki de çalışır hocam $degisken[0] , $degisken[1] ve degisken[2] ile çalışır
  • 27-08-2014, 14:25:54
    #6
    çift regex ile tek sefer alır yada bu şekilde iki iş yaparsın

    preg_match('@<li>(.*?)</li>@si',$html,$liler);
    foreach($liler[1] as $li)
    {
    preg_match('@hreg="(.*?)"@si',$li,$link);
    }

    gibi gibi mantık ve regexi birleştirin çok daha kısa tek satırla bile yaparsınız yukarıdaki işlemi
  • 27-08-2014, 14:28:58
    #7
    Akşam tüm yöntemlerinizi deneyeceğim arkadaşlar Hepinize teşekkür ederim
  • 27-08-2014, 14:30:31
    #8
    Webkurum adlı üyeden alıntı: mesajı görüntüle
    Baştaki de çalışır hocam $degisken[0] , $degisken[1] ve degisken[2] ile çalışır
    Normalde çalışıyor, ancak tamamen html yapısına bağlı.

    <a href="asdasd.php"><img src="asdsad.png"><span>asdasd</span>

    bu şekilde ise çalışır eğer arada boşluk varsa aradaki boşluklar işi bozuyor işte.
  • 27-08-2014, 14:37:13
    #9
    sawashan adlı üyeden alıntı: mesajı görüntüle
    Normalde çalışıyor, ancak tamamen html yapısına bağlı.

    <a href="asdasd.php"><img src="asdsad.png"><span>asdasd</span>

    bu şekilde ise çalışır eğer arada boşluk varsa aradaki boşluklar işi bozuyor işte.
    return str_replace(array("\n","\r","\t",), null, $cikti);
    Boşlukları bu yöntemle temizleyebilir yine çalışır yani