folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder [PHP] Ufak Bir Regex Problemi Yaşıyorum.



[PHP] Ufak Bir Regex Problemi Yaşıyorum.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    Selam müritler , veritabanından [x@y] tipinde bir veri alıyorum ve ben regex ile köşeli parantezlerin içindeki veriyi almak istiyorum (yani x@y) şöyle bir pattern oluşturdum /\[(.*?)\]/ bu aradaki veriyi alıyor ama şöyle bir çıktı veriyor :


    array(2) { [0]=> string(14) "[x" [1]=> string(8) "y]" }

     

    fakat ben şöyle bir çıktı istiyorum :

     

    array(2) { [0]=> string(14) "x" [1]=> string(8) "y" }

     

     

    regex'te nerede hata yapıyorum ?


    .
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    onparlak
    onparlak's avatar
    Kayıt Tarihi: 21/Şubat/2012
    Erkek

    Hocam regex'e uzağım biraz.Ama explode ile yapmak istersen

     

    $parcala = explode('[',$gelenveri);

    $parcala1 = explode(']',$parcala[1]);

    echo $parcala1[0].'<br/>';

    $parcala2 = explode('@',$parcala1[0]);

    print_r($parcala2);

     

    Çıktı :
    $parcala1[0] => x@y
    $parcala2 => Array ( [0] => x [1] => y )


    http://parelsoft.com/ || http://torrentdeposu.com/
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek
    onparlak bunu yazdı

    Hocam regex'e uzağım biraz.Ama explode ile yapmak istersen

     

    $parcala = explode('[',$gelenveri);

    $parcala1 = explode(']',$parcala[1]);

    echo $parcala1[0].'
    ';

    $parcala2 = explode('@',$parcala1[0]);

    print_r($parcala2);

     

    Çıktı :
    $parcala1[0] => x@y
    $parcala2 => Array ( [0] => x [1] => y )

    sağolasın hocam , ama regex ile çözsem daha pratik olacak gibi geliyor tek seferde.


    .
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    @sokoban, örnek bir konu metni koyup (şu db den gelen), bir de php kodlarımı da tam koysaydın (orada bir hata olabilirdi) daha iyi olurdu. 

    O yüzden sorudan anladığım kadarıyla  şöyle bir örnek vereyim : http://www.phpliveregex.com/p/1jy

    buzukatak tarafından 26/Eyl/13 13:24 tarihinde düzenlenmiştir

    anlıyorum.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    cevap yazan arkadaşlara teşekkür ederim , sorun $output'ta [0][1]'i alıyordum , [1][0]'ı almam gerekiyormuş şuan düzeldi.


    .
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    REGEX çözümü:

    <?php

    $str = 'x@y@z';

    preg_match( '/([^@]*)@([^@]*)/', $str,  $matches);

    print_r($matches);

    ?>


    Olaylara karışmayın!
Toplam Hit: 1134 Toplam Mesaj: 6