• 24-03-2019, 18:00:37
    #1
    Merhabalar, aşağıda kısaca örnek vermek istiyorum

    $veri = "Benim 5 tane armutum var ve okul numaram 123456";

    şeklinde bi değişkenim var. Ben burda verinin içerisindeki 6 ya da 7 haneli olan sayıyı çekmek istiyorum sadece. 123456 sayısı değişken içerisinde herhangi bir yerde olabilir.
    Aşağıdaki şekilde sayıyı güzelce çekiyorum fakat değişken içerisinde yukarda belirttiğim gibi 2 tane sayı olursa onu birleştirip bana veriyor.

    Eğer değişken içerisinde sadece 123456 sayısı varsa tamam onu veriyor ama bir de baştaki 5 tane armutum var olduğu zaman 5123456 olarak veriyor.

    $sayi = (int) filter_var($veri, FILTER_SANITIZE_NUMBER_INT);

    Dediğim zaman eğer $veri değişkeni
    $veri = "Benim 5 tane armutum var ve okul numaram 123456";

    Böyle ise 5123456 oluyor.

    Eğer $veri değişkeni
    $veri = "Benim hiç armutum yok ve okul numaram 123456";

    Böyle ise sorunsuz 123456 sayısını bana veriyor. Ama dediğim gibi işte değişken içerisinde 2. bi sayı varsa onla birleştirip veriyor. Bunu nasıl aşarız?

    Teşekkürler herkese.
  • 24-03-2019, 18:03:26
    #2
    Verileri array'a atıp deneyin.
  • 24-03-2019, 18:07:54
    #3
    PHP'de RegEx (regular expression) ile yapabilirsin.

    https://stackoverflow.com/questions/...th-of-4-5-or-6
  • 24-03-2019, 18:12:25
    #4
    $veri = "Benim 5 tane armutum var ve okul numaram 123456";
    preg_match('/d+ okul numaram (d+)/',$veri,$eslesen);
    $kacarmut = $eslesen[0];
    $okulno   = $eslesen[1];
  • 24-03-2019, 18:15:40
    #5
    StyleWaR adlı üyeden alıntı: mesajı görüntüle
    Verileri array'a atıp deneyin.
    Vikipedi adlı üyeden alıntı: mesajı görüntüle
    PHP'de RegEx (regular expression) ile yapabilirsin.

    https://stackoverflow.com/questions/...th-of-4-5-or-6


    Bunlara bakacağım, teşekkürler.

    Alkoz adlı üyeden alıntı: mesajı görüntüle
    $veri = "Benim 5 tane armutum var ve okul numaram 123456";
    preg_match('/d+ okul numaram (d+)/',*$veri*,*$eslesen);
    $kacarmut = $eslesen[0];
    $okulno =*$eslesen[1];
    Teşekkürler fakat değişken içeriği sabit bir değer değil bu işe yaramaz yani hocam.

    Ben abuzer kadayıf telefon numara 123091

    Bu şekilde de olabilir,

    Sen kimsin numaramı nerden buldun 1231123

    şeklinde de olabilir yani. Gelen yorumların içerisindeki 6-7 haneli sayıları almaya çalışıyorum da diyebilirim.
  • 24-03-2019, 18:18:28
    #6
    Cankat adlı üyeden alıntı: mesajı görüntüle
    [/URL]

    Bunlara bakacağım, teşekkürler.



    Teşekkürler fakat değişken içeriği sabit bir değer değil bu işe yaramaz yani hocam.

    Ben abuzer kadayıf telefon numara 123091

    Bu şekilde de olabilir,

    Sen kimsin numaramı nerden buldun 1231123

    şeklinde de olabilir yani. Gelen yorumların içerisindeki 6-7 haneli sayıları almaya çalışıyorum da diyebilirim.
    preg_match('/^[0-9]{6}$/',$number);
  • 24-03-2019, 18:59:18
    #7
    Alkoz adlı üyeden alıntı: mesajı görüntüle
    preg_match('/^[0-9]{6}$/',$number);
    Üzgünüm hiçbir işe yaramadı direkt 0 çıktısını veriyor.
  • 24-03-2019, 19:11:25
    #8
    $text = "Sen kimsin 123456 numaramı nerden buldun 1231123";
    preg_match('/([0-9]{7})/',$text,$sonuc);
    print_r($sonuc);
    Sadece 7 haneli sayıları alacaktır
  • 24-03-2019, 19:13:05
    #9
    Alkoz adlı üyeden alıntı: mesajı görüntüle
    $text = "Sen kimsin 123456 numaramı nerden buldun 1231123";
    preg_match('/([0-9]{7})/',$text,$sonuc);
    print_r($sonuc);
    Sadece 7 haneli sayıları alacaktır
    Ben de tam yukardaki yazdığınızın hatasını farkedip $text ekledim sadece 6 haneliyi ya da 7 haneliyi gösterebiliyoruz verdiğiniz şekilde. Bana sadece 6 veya 7 haneliyi göstersin istiyorum. {6,7} yapınca çalışmıyor kod.

    Edit: çalışıyormuş pardon

    Çok teşekkürler.