Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606

    Formattazione stringa in uscita.

    Ciao, il problema può sembrare banale a prima vista, ma non per me.
    In pratica devo formattare una stringa in modo che si renda leggibile una parte di essa rispetto al resto della stringa stessa; magari con uno strong nella parte da evidenziare.

    queste stringhe, numeriche, vengono prese da un database in cui sono memorizzate tutte nella forma: AA000NUM dove la stringa è sempre composta da 8 caratteri, con i primi due che saranno invariabilmente l'anno a due cifre, poi il numero che va da 1 ad un massimo che dipende solo dal numero di pratiche iscritte in quell'anno.
    In altre parole si avranno le seguenti stringhe per l'anno in corso: 18000001, 18000002, 18000003, ... 18000100 e che dovranno essere rese visibili in questo modo: 18/000001, 18/000002, 18/000003, ... 18/000100.
    In realtà sono riuscito a formattare la prima parte, l'anno e ad inserire la barra di separazione, ma il metodo che ho usato è quello classico, ovvero estrarre parte della stringa e ricomporla nel modo voluto con substr(), ma mi pare un metodo troppo complesso e dispendioso, mi chiedo se c'è la possibilità di avere il risultato richiesto tramite altro metodo, per esempio con le funzioni della serie sprintf() eccetera.
    Purtroppo non sono per nulla ferrato su tali funzioni.
    Grazie comunque per l'aiuto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Per esempio
    Codice PHP:
    $pratiche = [
        
    '18000007',
        
    '18000038',
        
    '18000423',
        
    '18005212',
    ];

    foreach(
    $pratiche as $pratica)
    {
        
    $anno substr($pratica,0,2);
        
    $num substr($pratica,2);
        
        
    preg_match('/[1-9]{1}/',$num,$matches,PREG_OFFSET_CAPTURE);
        
        echo 
    $anno '/' substr($num,0,$matches[0][1]) . '<strong>' substr($num,$matches[0][1]) . '</strong> <br>';


  3. #3
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Per esempio
    Codice PHP:
    $pratiche = [
        
    '18000007',
        
    '18000038',
        
    '18000423',
        
    '18005212',
    ];

    foreach(
    $pratiche as $pratica)
    {
        
    $anno substr($pratica,0,2);
        
    $num substr($pratica,2);
        
        
    preg_match('/[1-9]{1}/',$num,$matches,PREG_OFFSET_CAPTURE);
        
        echo 
    $anno '/' substr($num,0,$matches[0][1]) . '<strong>' substr($num,$matches[0][1]) . '</strong> <br>';

    Ok grazie ma in pratica non c'è altro modo per semplificare, in pratica andrebbe tutto ripetuto 25 volte a pagina.
    Comunque non è lontano da ciò che realizzato io, a parte il preg_match().

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Di pagine ne visualizzerai una alla volta, ciclare su 25 elementi di un array ha un impatto praticamente nullo sulle prestazioni, e comunque qualsiasi soluzione tu adotti, l'array dovrai sempre scorrerlo per prendere i dati da elaborare.

  5. #5
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Infatti, il problema è che ho già notato che ci mette circa un secondo ( a occhio ) per ogni pagina visualizzata, non a schermo, ma la routine crea un pdf tramite tcpdf.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.