[PHP] Ricercare Uno Specifico Carattere In Una Precisa Posizione

Discussione in 'PHP' iniziata da shurimano, 10 Maggio 2018.

  1. shurimano

    shurimano Nuovo Utente

    Registrato:
    10 Maggio 2018
    Messaggi:
    1
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
    Buondì,
    ho un piccolo problema che non riesco a definire come fare.
    Premetto che sono un "novizio" di PHP quindi potrei peccare anche nella spiegazione che cercherò di fare:

    In pratica da un form action vengono trasportati dei valori e nella pagina che riceve questi valori ci sono delle verifiche.
    In uno di questi campi obbligatoriamente vanno scritti 11 caratteri e alla settima posizione, sempre obbligatoriamente, deve essere presente il carattere - (trattino).
    Esempio del campo da inserire aabbcc-1234

    Nella pagina di controllo come posso verificare se il trattino è presente e che questo si trovi esattamente in settima posizione in modo da fare un if che se il carattere è assente o non nella corretta posizione dia l'errore, mentre se presente e nella corretta posizione, passi alla successiva verifica.

    Grazie in anticipo
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.518
    Mi Piace Ricevuti:
    123
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
  3. otto9due

    otto9due Utente Attivo

    Registrato:
    22 Febbraio 2014
    Messaggi:
    529
    Mi Piace Ricevuti:
    21
    Punteggio:
    28
    Sicuramente si puó verificare la composizione della stringa e dei caratteri ma ti invito a riflettere su una cosa che probabilmente ti semplificherebbe anche il lavoro, se facessi una cosa del genere:
    (Primo campo)-(secondo campo) e verifichi solo il numero di caratteri presente nei due campi?


    Inviato dal mio iPhone utilizzando Tapatalk
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    907
    Mi Piace Ricevuti:
    53
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Prova così molto più performante:
    PHP:
    $string='QwErTy-123456789-querysssi-14578963';
    function 
    check_string($str){
        
    $pattern="/([\w]{6})(-)([0-9]{4})/";
        
    preg_match_all($pattern$str$output);
        
    $ret='';
        (isset(
    $output[0][0]))?$ret=$output[0][0]:null;
        return 
    $ret;
    }
    echo 
    check_string($string);
    Torna sempre la prima parte di match quindi il resto viene elegantemente ignorato! Se non trova match torna una stringa vuota... Puoi gestire qui l'errore ed eventualmente aggiungere i caratteri mancanti tu, o creare una stringa temporanea.
     
    Ultima modifica: 10 Maggio 2018
Sto caricando...

Condividi questa Pagina