Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072

    Creazione stringa di caratteri

    Ciao a tutti, ho un problema nellla creazione di una stringa di caratteri:

    ho una variabile:

    strftime("%Y%m%d%H%M%S")

    e un'altra variabile $numero che può avere valori da 0 a 100000000 ecc...

    io vorrei creare una stringa di 20 caratteri con

    strftime("%Y%m%d%H%M%S") e per i restanti

    se strftime("%Y%m%d%H%M%S") + $numero non raggiunge il massimo dei 20 caratteri aggiungere 00 prima di $numero

    se strftime("%Y%m%d%H%M%S") + $numero supera i 20 caratteri, togliere i caratteri in più (ma all'inizio di $numero


    mi aiutate??

    Grazie

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Prova con questo:

    Codice PHP:
    $data strftime("%Y%m%d%H%M%S");
    $numero 003754737//il tuo numero
    $result $data.$numero;

    if (
    strlen($result) < 20){ 
    $result $data."00".$numero;
    }else{
    $tot strlen($result);
    $da_togliere $tot 20;
    $result substr($result$da_togliere);

    Fammi sapere se va,

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Graaazie mille!!!


    Provo subito!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Mi sono spiegata male io....

    quando scrivo

    se strftime("%Y%m%d%H%M%S") + $numero non raggiunge il massimo dei 20 caratteri aggiungere 00 prima di $numero
    intendo dire: se è inferiore a 20, devo aggiungere X zeri per arrivare a 20 caratteri

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    hai guardato la funzione che ti ho postato? fa quello che dici te...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    $data_=_strftime("%Y%m%d%H%M%S");
    $numero_=_003754737;_//il_tuo_numero
    $result_=_$data.$numero;

    if_(($len = strlen($result))_<_20){_
    $result_=_$data.str_repeat("0",$len).$numero;
    }else{
    $tot_=_strlen($result);
    $da_togliere_=_$tot_-_20;
    $result_=_substr($result,_$da_togliere);
    }



    Modificato, ora dovrebbe essere corretto... Spero...

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Codice PHP:
    $date strftime("%Y%m%d%H%M%S");
    $number rand(1100000000); 
    // ho messo un numero random... in un for puoi provare un po' di combinazioni per vedere se è giusto
    $union =  $date.$number;
    strlen($union) <= 20 $union $date.str_pad($number20 strlen($date), 0STR_PAD_LEFT) : $union substr($union020-strlen($union)); 

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ma perchè vi complicate la vita?? perchè non leggete la documentazione che è CHIARISSIMA?



    Codice PHP:
    <?php
    $data 
    strftime("%Y%m%d%H%M%S");
    $numero=55032;
    echo 
    $data.str_pad($numero,20,0,STR_PAD_LEFT);
    ?>
    nessun IF,nessun foreach e compagnia bella!!!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    dottwatson, il tuo script va bene se non si considera che è richiesta una lunghezza della stringa pari a 20 caratteri...

    se prendo il tuo script e faccio in modo che $numero sia composto da più di 6 cifre (secondo i requisiti può variare tra 1 e 100000000) e considerando che strftime("%Y%m%d%H%M%S") sarà sempre di 14 caratteri, potrò trovarmi in questa condizione

    Codice PHP:
    $data strftime("%Y%m%d%H%M%S"); 
    // un numero di 9 cifre
    $numero=123456789;
    // modifico il str_pad in modo che inserisca al massimo 6 zeri, per avere una lunghezza ipotetica della stringa pari a 20, come richiesto
    echo "stringa: " $data.str_pad($numero,6,0,STR_PAD_LEFT)." -- lunghezza stringa: " .strlen($data.str_pad($numero,6,0,STR_PAD_LEFT)); 
    // a video otterrò questo
    // stringa: 20110102150909123456789 -- lunghezza stringa: 23 
    la mia stringa sarà più lunga di 20 caratteri e non ne avrò il controllo per poter tagliare $numero dei caratteri necessari per tornare alla lunghezza desiderata...

    oh, io questo ho capito dall'esposizione del problema, capace che poi si richieda una concatenazione di una stringa di tipo data e 20 cifre...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.