[PHP] Ricercare Uno Specifico Carattere In Una Precisa Posizione

shurimano

Nuovo Utente
10 Mag 2018
1
0
1
49
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
 

otto9due

Utente Attivo
22 Feb 2014
529
21
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
 

macus_adi

Utente Attivo
5 Dic 2017
1.232
77
48
IT/SW
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.
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: