• 03-12-2014, 10:28:01
    #1
    Arkadaşlar Merhaba,

    PHP bilen biriyim ancak nedense şu regex hep korkulu rüyam olmuştur

    Sorunuma gelecek olursak şöyle bir sıkıntım var.



    Metin dosyam şu bunun gibi yaklaşık 50 kb boyutunda dosyam var. Status(.*) Status şeklinde arada kalanları regex ile almaya çalışıyorum ancak olmuyor. Kodumda nerde hata yapmış olabilirim? print_r dediğimde hiç sonuç gelmiyor.

    PHP Kodum:

    <?php preg_match_all('/^Status(.*)Status$/si',$dosyaOku2,$get_macadress);
    ?>

    Örnek Metinde Bu:

    Server:  Status and Counters - Port Address Table - 6
    
    Server: 
    
    Server:   MAC Address   VLANs       
    
    Server:   ------------- ------------
    
    Server:   0001ec-fbf14c 1           
    
    Server:  
    
    Server: 
    
    Server:  Status and Counters - Port Address Table - 8
    
    
    
    
    Server: 
    
    Server:   MAC Address   VLANs       
    
    Server:   ------------- ------------
    
    Server:   0001ec-fbf14c 1           
    
    Server:  
    
    Server: 
    
    Server:  Status and Counters - Port Address Table - 9
    ilginize çok teşekkür ederim.
  • 03-12-2014, 10:43:05
    #2
    @Bilisim06,

    tam istediğiniz sonuç mu bilmiyorum ama aşağıdaki kodu bi deneyin isterseniz.

    preg_match_all('#Server: Status(.*?)Server: Status#si',$dosyaOku2,$get_macadress);

    hatta aşağıdaki gibi kodu alarakta düşünebilirsiniz işinize yararsa

    $get_macadress = explode("\n", $dosyaOku2);
  • 03-12-2014, 11:27:41
    #3
    @yvolkan hocam tşk ederim ancak yine boş döndü

    bir ayrıntıyı atlıyoruz ama nedir bulamadım.
  • 03-12-2014, 11:37:08
    #4
    sizin almak istedğiniz kısım(lar) neresi yazarsanız kolay yardımcı oluruz
  • 03-12-2014, 11:37:32
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bilisim06 adlı üyeden alıntı: mesajı görüntüle
    @yvolkan hocam tşk ederim ancak yine boş döndü

    bir ayrıntıyı atlıyoruz ama nedir bulamadım.
    Hocam bu alınan yazı sade bir şekildemi yani ekrandaki gibi ? yoksa html php gibi bir sayfadanmı çekiliyor ?
  • 03-12-2014, 11:55:57
    #6
    Status ile Status arasındaki tüm verileri almak istiyorum hocam. Kaç tane status varsa aralarını almak istiyorum.

    Verileri txt dosyasından alıyorum. Bunlar telnet çıktısı. Yani şöyle

    Status and Counters - Port Address Table - 6
    
    Server: 
    
    Server:   MAC Address   VLANs       
    
    Server:   ------------- ------------
    
    Server:   0001ec-fbf14c 1           
    
    Server:  
    
    Server: 
    
    Server:  Status
  • 03-12-2014, 12:06:52
    #7
    Arkadaşın yazdığı kod doğru aslında 'si' şeklide büyük küçük harfe duyarsız yapmış 'm' eklemeyi unutmuş satır başı ve satır sonu ifadesi 'sim' şeklinde olacak

    Aşağıdaki linkten inceleme yapabilirsiniz

    http://www.rubular.com/r/OQa7qzYpv1
  • 03-12-2014, 13:48:24
    #8
    @By_MiLaT Allah razı olsun hocam oldu
  • 03-12-2014, 21:31:18
    #9
    Arkadaşlar istediğim yine tam anlamıyla olmadı

    Status and Counters - Port Address Table - 1
    xx
    Status and Counters - Port Address Table - 2
    yy
    Status and Counters - Port Address Table - 3
    dd
    Status and Counters - Port Address Table - 4

    şeklinde bir yapım var. table 2 ve table 4 ü atlayarak çekiyor. Sorun nedir sizce

    Kodum da şu şekilde:
    preg_match_all('#Status(.*?)Status#sim',$dosyaOku, $status_block);