• 15-12-2016, 17:34:04
    #1
    Merhabalar,

    Elimde değişkenden gelen Local/AG-000-NF-1701@fromotherpbx/n böyle bir değer var bu değerdeki 1701'i ayrıca bir değişkene almak istiyorum. Bunu nasıl yapabilirim ? parse etmeyi denedim fakat ayıraçlar birbirinden farklı yardımcı olabilirseniz çok sevinirim.

    Teşekkürler.
  • 15-12-2016, 18:17:37
    #2
    <?php
    $deger =  "Local/AG-000-NF-1701@fromotherpbx/n";
    $karakterSayisi = 4;
    preg_match('#([0-9]{'.$karakterSayisi.'})#',$deger,$sonuclar);
    $sayi = $sonuclar[1];
    
    echo $sayi;
    ?>
    Bu işini görebilir. Değer içindeki sadece sayıları çekiyor ve 4 karakterle sınırladım. Onu kendin ayarlarsın, çıktıyı array olarak verir. Bulduğu değerleri görebilirsin. Ama kesinlikle tek değer olduğuna inanıyorsun $sonuclar[1] şeklinde çekebilirsin. Diğer türlü döngüye alıptada listeletebilirsin.
  • 15-12-2016, 20:20:02
    #3
    Hocam öncelikle ilginiz için çok teşekkür ederim. Sıkıntım oradaki sayı 1 karaterlide 5 karakterlide olabilir ama her zaman aynı yerde duracaktır. Yani karakter sayısı değişken olabilir.

    grafikcoder adlı üyeden alıntı: mesajı görüntüle
    <?php
    $deger =  "Local/AG-000-NF-1701@fromotherpbx/n";
    $karakterSayisi = 4;
    preg_match('#([0-9]{'.$karakterSayisi.'})#',$deger,$sonuclar);
    $sayi = $sonuclar[1];
    
    echo $sayi;
    ?>
    Bu işini görebilir. Değer içindeki sadece sayıları çekiyor ve 4 karakterle sınırladım. Onu kendin ayarlarsın, çıktıyı array olarak verir. Bulduğu değerleri görebilirsin. Ama kesinlikle tek değer olduğuna inanıyorsun $sonuclar[1] şeklinde çekebilirsin. Diğer türlü döngüye alıptada listeletebilirsin.
  • 15-12-2016, 20:37:20
    #4
    Bogarden adlı üyeden alıntı: mesajı görüntüle
    Hocam öncelikle ilginiz için çok teşekkür ederim. Sıkıntım oradaki sayı 1 karaterlide 5 karakterlide olabilir ama her zaman aynı yerde duracaktır. Yani karakter sayısı değişken olabilir.
    Buyur:

    <?php
    $deger = 'Local/AG-000-NF-1701@fromotherpbx/n';
    preg_match('#Local\/AG\-000\-NF\-(.*?)\@fromotherpbx\/n#',$deger,$sonuc);
    $sayi = $sonuc[1];
    echo $sayi;
    ?>
    Diğer yerler sabit kalıp sadece o sayı değişecek dedin, şimdi dediğin gibi çalışıyor . Oraya hangi sayı gelirse gelsin verecek sonucu.
  • 15-12-2016, 20:38:27
    #5
    <?php 
    $str_1 = "Local/AG-000-NF-1701@fromotherpbx/n";
    $str_2 = substr(strrchr(stristr($str_1,'@',true),"-"),1);
    echo $str_2; // 1701
    ?>
  • 15-12-2016, 20:44:14
    #6
    Çok teşekkür ederim