• 01-01-2020, 22:21:56
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    arkadaşlar öncelikle herkese iyi akşamlar, güzel mutlu başarılı yıllar.

    bir xmlden bana 01ADS000 gibi bir plaka geliyor ama benim bunu veritabanına 01-ADS-000 olarak göndermem gerek bunu nasıl parçalarım.
  • 01-01-2020, 22:27:44
    #2
    Öncelikle 01ADS000 içerisinden sayıları ayırırsın, daha sonrasında sayılar arasında ilk 2 haneyi alır, yanına metini ekler, onun yanına da kalan sayıyı ekleyebilirsin.
    Örnek olarak, 01ADS000 içerisinden sayıları ayırdığında elinde 01000 olur. İlk 2 haneyi aldığında ise 01 ve 000 olarak iki ayrı string elde edersin. Kalan metinleri ise 01-ASD olarak yerleştirir, son olarak da kalan sayıları da 01-ASD-000 olarak sonuna eklersin. Algoritmasını yazdım,kod kısmı da sende artık Kolay gelsin
  • 01-01-2020, 22:28:08
    #3
    Regex ve preg_match konularını araştırabilirsin.
  • 01-01-2020, 22:30:21
    #4
    captainrau adlı üyeden alıntı: mesajı görüntüle
    Regex ve preg_match konularını araştırabilirsin.
    teşekkür ederim
  • 01-01-2020, 22:38:04
    #5
    Forumda php kodu gönderemiyorum mesaj olarak @Coskun; cloudflare'dan kaynaklı galiba.

    Koda burdan ulaşabilirsiniz hocam;
    https://paste.ofcode.org/AzQSgV6qyWvHJMwjYRQu35
  • 01-01-2020, 22:42:20
    #6
    $plaka = '01ADS000';
    preg_match_all('/([0-9]+|[a-zA-Z]+)/', $plaka, $arr);
    $arr = $arr[0];
    
    print_r($arr);
    Çıktı:
    /*
    Array
    (
    [0] => 01
    [1] => ADS
    [2] => 000
    )
    */
  • 01-01-2020, 22:42:29
    #7
    metehandemir adlı üyeden alıntı: mesajı görüntüle
    Forumda php kodu gönderemiyorum mesaj olarak @Coskun; cloudflare'dan kaynaklı galiba.

    Koda burdan ulaşabilirsiniz hocam;
    https://paste.ofcode.org/AzQSgV6qyWvHJMwjYRQu35
    çok teşekkür ederim tam istediğim şey elinize sağlık
  • 01-01-2020, 22:45:35
    #8
    Üyeliği durduruldu
    Aşağıdaki şekilde de kullanabilirsiniz.

    $plaka = "01ADS000";
    $plakaRegex = '#^(0[1-9]|[1-7][0-9]|8[01])(([A-Z])(\d{4,5})|([A-Z]{2})(\d{3,4})|([A-Z]{3})(\d{2,3}))$#si';
    preg_match($plakaRegex, $plaka, $matches, PREG_OFFSET_CAPTURE);
    
    if(count($matches)) {
        $newPlaka = $matches[1][0] . '-' . $matches[7][0] . '-' . $matches[8][0];
        echo $newPlaka;
    } else {
        echo 'Hatalı Plaka!';
    }