[PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa

  • Creatore Discussione Creatore Discussione Kiko74b
  • Data di inizio Data di inizio

Kiko74b

Nuovo Utente
26 Giu 2022
19
2
3
Salve sto cercando di modificare una funzione che ho trovato in rete ed aggiornarla per le mie esigenze:
La funzione è la seguente:
PHP:
function farmacode($code){
     $wres = 0;
     $codeprint = "";
     $strcon = "0123456789BCDFGHJKLMNPQRSTUVWXYZ";
     $strcon = str_split($strcon,1);
     $codelen = strlen( $code ) - 1;
     for( $i = 0; $i <= $codelen; $i++ ) {
          $char = array_search(substr( $code, $i, 1 ), $strcon);
          $wres += ($char * pow(32,($codelen - $i)));
     }
     return $wres;
}
Il form di inserimento utilizza il metodo POST
ed è cosi composto:
PHP:
if(isset($_POST['add']))
{
...
$isbn=farmacode($_POST['isbn']);
...
$sql= "INSERT...
$query->bindParam(':isbn',$isbn,PDO::PARAM_STR);
<form....

<div class="col-md-6">  
<div class="form-group">
<label>AIC<span style="color:red;">*</span></label>
<input class="form-control" type="text" name="isbn" id="isbn" required="required" autocomplete="off" onBlur="farmacode()"  />
<p class="help-block">Codice Autorizzazione Immissione Commercio</p>
         <span id="isbn-availability-status" style="font-size:12px;"></span>
</div></div>
Quello che vorrei fare è inserire a seconda che la lunghezza del risultato sia di 8 o 9 caratteri rispettivamente i caratteri "A0 " o "A".
Qualche consiglio ?
 
Scusate ho dimenticato di sostituire la variabile $code con $isbn nella funzione farmacode.
 
Anche se non ho ricevuto risposta sono arrivato a questa conclusione :
PHP:
function farmacode($isbn){
     $wres = 0;
     $a="A0";
     $b="A";
     $codeprint = "";
     $strcon = "0123456789BCDFGHJKLMNPQRSTUVWXYZ";
     $strcon = str_split($strcon,1);
     $codelen = strlen( $isbn ) - 1;
     for( $i = 0; $i <= $codelen; $i++ ) {
          $char = array_search(substr( $isbn, $i, 1 ), $strcon);
          $wres += ($char * pow(32,($codelen - $i)));
     }
     if (strlen($wres)==8)
     {
     return $a.$wres;
     }else{
     return $b.$wres;
     }
}
Nel caso possa servire a qualcuno. Buon fine settimana a tutti
 
  • Like
Reactions: WmbertSea

Discussioni simili