• 06-07-2015, 18:37:48
    #1
    Merhaba arkadaşlar,

    https://xrg.es/#acawoz linkinde başarılı olarak çalışan preg_match_all komutunu sitemde çalıştıramıyorum.

    preg_match_all('~User Name \|(.*?) Full Name.+?Transfer Bytes \|(.*?) Transfer Packets~is',$cikti,$f);
    
    print_r($f);
    
    // EKRAN >> Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
  • 06-07-2015, 22:07:14
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    srknyxl adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    https://xrg.es/#acawoz linkinde başarılı olarak çalışan preg_match_all komutunu sitemde çalıştıramıyorum.

    preg_match_all('~User Name \|(.*?) Full Name.+?Transfer Bytes \|(.*?) Transfer Packets~is',urldecode($cikti),$f);
    
    print_r($f);
    
    // EKRAN >> Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
    veriyi hangi siteden ve nereyi çekeceksin?
  • 07-07-2015, 01:08:14
    #3
    Manuel test ettim calisti. Kaynak veri gelmiyor olabilir mi?
  • 07-07-2015, 01:27:49
    #4
    srknyxl adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    https://xrg.es/#acawoz linkinde başarılı olarak çalışan preg_match_all komutunu sitemde çalıştıramıyorum.

    preg_match_all('~User Name \|(.*?) Full Name.+?Transfer Bytes \|(.*?) Transfer Packets~is',urldecode($cikti),$f);
    
    print_r($f);
    
    // EKRAN >> Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
    urldecode silerseniz olmasi lazim.
  • 07-07-2015, 01:48:22
    #5
    sercander adlı üyeden alıntı: mesajı görüntüle
    veriyi hangi siteden ve nereyi çekeceksin?
    Siteden bot amaçlı veri çekmiyorum. SSH oturumu ile serverdan kullanıcı listesi geliyor onu bölüp veri tabanına yazdırmak amacım.



    LaCReMeL adlı üyeden alıntı: mesajı görüntüle
    Manuel test ettim calisti. Kaynak veri gelmiyor olabilir mi?
    Kaynak veriyi echo ile ekrana yazdıyor, sorun yok. Acaba hostingimden kaynaklı bir sınır olabilir mi? Zira string boyutu bayağı büyük. Maksimum dizi boyutu vs. bir olay varmı sınırlanabilecek?

    kingofseo adlı üyeden alıntı: mesajı görüntüle
    urldecode silerseniz olmasi lazim.
    Evet, o olmadan denemiştim daha önce, o halini kopyalamışım buraya. Normal halde de olmuyor.


    Hepinize ilginiz için çok teşekkür ediyorum.

    EKLEME
    Gelen veriyi örnek olarak elle $cikti değişkenine verdim. preg_match_all başarılı bir şekilde istediğim gibi 430 parçaya böldü. Ancak;

    Normalde $cikti değişkeni bu şekilde serverdan gelen SSH verisi ile tanımlanıyor.

    $ssh = new Net_SSH2("XXX.XXX.XXX.XXX"); 
    if (!$ssh->login('root', '123456')) { 
        exit('Giriaz'); 
    } 
    
    $cikti = $ssh->exec("/usr/local/server/cmd UserList");
    Bu tanımlamadan sonra echo $cikti; yazdığımda ekrana da tamamı yazılıyor. Ekrana yazılanı elle $cikti ya verirsem çalışıyor fakat üstteki koddaki gibi kendisi alırsa çalışmıyor. Veri türlerinde mi acaba sorun? İşin garibi aynı şekilde farklı bir php dosyasında çalışıyor, daha kısa bir veriyi bölmek için halihazırda kullanıyorum.
  • 07-07-2015, 18:48:50
    #6
    Debug 1, daha az user olan baska bir sunucuda ayni kodlari test edin veri buyuklugunden mi kaynakli anlayabilirsin.
    Debug 2, expression'i daha basit bir duzeye indirin, mesela sadece '~User Name~is' su sekilde yapin. Expressionda mi bir sorun var anlayabilirsin.
  • 08-07-2015, 15:41:43
    #7
    LaCReMeL adlı üyeden alıntı: mesajı görüntüle
    Debug 1, daha az user olan baska bir sunucuda ayni kodlari test edin veri buyuklugunden mi kaynakli anlayabilirsin.
    Debug 2, expression'i daha basit bir duzeye indirin, mesela sadece '~User Name~is' su sekilde yapin. Expressionda mi bir sorun var anlayabilirsin.
    Sunucudan gelen veriyi elle $cikti değişkenine verdiğim zaman (uzunluğunu kısmadan) sorunsuz bi şekilde oluyor. Ne büyüklüğünde nede expression da hata görünüyor. Veri türleri ile ilgili bir sorun mu acaba?
  • 08-07-2015, 16:47:34
    #8
    srknyxl adlı üyeden alıntı: mesajı görüntüle
    Sunucudan gelen veriyi elle $cikti değişkenine verdiğim zaman (uzunluğunu kısmadan) sorunsuz bi şekilde oluyor. Ne büyüklüğünde nede expression da hata görünüyor. Veri türleri ile ilgili bir sorun mu acaba?
    2. dedigimi yaptin mi hocam? Expression'i degistir basit birsey yap. a yaz sadece gerekirse, bir gorelim. Bunu soylememin sebebi, bazen source'u ekrana print yaptigimizda ya da copy paste yapip daha sonra bir degiskene verdigimizde bazi karakterler tasinmaz, ama bu karakterler veriyi aldigin kaynaktan her seferinde gelir. Bu da regexp'i etkiler.
  • 08-07-2015, 17:51:38
    #9
    LaCReMeL adlı üyeden alıntı: mesajı görüntüle
    2. dedigimi yaptin mi hocam? Expression'i degistir basit birsey yap. a yaz sadece gerekirse, bir gorelim. Bunu soylememin sebebi, bazen source'u ekrana print yaptigimizda ya da copy paste yapip daha sonra bir degiskene verdigimizde bazi karakterler tasinmaz, ama bu karakterler veriyi aldigin kaynaktan her seferinde gelir. Bu da regexp'i etkiler.
    preg_match_all('~User Name~is',$cikti,$f);
    
    print_r($f);
    388 adet parça oluşturuyor bu şekilde. Kullanıcı sayısına eşit yani doğru.

    Ama bunda diziler boş,

    preg_match_all('~User Name \|(.*?) Full Name.+?Transfer Bytes \|(.*?) Transfer Packets~is',$cikti,$f);