Funzioni generiche per ogni uso

Discussione in 'Snippet PHP' iniziata da MarcoGrazia, 20 Novembre 2015.

  1. MarcoGrazia

    MarcoGrazia Utente Attivo

    Registrato:
    15 Dicembre 2009
    Messaggi:
    676
    Mi Piace Ricevuti:
    7
    Punteggio:
    18
    Sesso:
    Maschio
    Occupazione:
    Sviluppare web design (Studiare)
    Località:
    Udine
    Home Page:
    Ciao,
    nella pratica di tutti i giorni si ha bisogno di semplici funzioni che svolgano sempre lo stesso compito, e ci ritroviamo a dover reinventare la ruota ogni volta; filosofia questa, vietata ad ogni buon programmatore, che invece deve condividere quanto creato.
    Quindi ecco alcune mie funzioni che uso continuamente, commentate per l'uso pratico.

    Funzioni per la data
    PHP:
    date_default_timezone_set('Europe/Rome');
    $mesi = array( '','gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre' );
    $mesiNum = array( '','gennaio'=>1,'febbraio'=>2,'marzo'=>3,'aprile'=>4,'maggio'=>5,'giugno'=>6,'luglio'=>7,'agosto'=>8,'settembre'=>9,'ottobre'=>10,'novembre'=>11,'dicembre'=>12 );
    $settimana = array( '''lunedì','martedì','mercoledì','giovedì','venerdì','sabato','domenica' );

    /**
    *    Verifica il formato di una data se ISO8601
    *      Ritorna la data se verificata o false se non è in un formato valido.
    */
    function verificaData$date$format 'Y-m-d' ) {
        
    $d = \DateTime::createFromFormat$format$date );
        if ( 
    $d && $d->format($format) == $date ) return $date; else return false;
    }    
    //    verificaData()

    /**
    *   Trasforma una data in formato ISO8601 in forma leggibile per umani.
    *   ISO8901 = ANNO-MESE-GIORNO
    */
    function ISO2Uman($dataIso) {
        global 
    $mesi;
        list(
    $anno$mese$giorno) = explode('-'$dataIso);
    return (string)
    $giorno ' ' $mesi[(int)$mese] . ' ' . (string)$anno;
    }    
    //    ISO2Uman()

    /**
    *    Genera la data odierna
    *      Se chiamata con true come parametro ( default ) inserisce pure il giorno della settimana.
    *      Se non lo si vuole, passarla con false come parametro.
    */
    function dataOdierna$settimana true ) {
        global 
    $mesi$settimana;
        if ( 
    $settimana ) {
            return 
    $settimana[(int)date'N' )] . ', ' date'd' ) . ' ' $mesi[(int)date'n' )] . ' ' date'Y' );
        } elseif( 
    $settimana == false ) {
            return 
    date'd' ) . ' ' $mesi[(int)date'n' )] . ' ' date'Y' );
        }
    }    
    //    dataOdierna()


    Funzioni per il trimming dei valori passati via POST o GET
    PHP:
    /**
    *    Verifica un indirizzo email nel formato indirizzo@email.tld
    *      Torna false se non è verificato o l'indirizzo se verificato.
    */
    function verificaEmail$valore ) {
        
    $sanitized filter_var$valoreFILTER_SANITIZE_EMAIL );
        if ( 
    filter_var$sanitizedFILTER_VALIDATE_EMAIL )) {
            return 
    $sanitized;
        }
    return 
    false;
    }    
    //    verificaEmail()

    /**
    *     Filtra un URL
    *      Torna false se non è verificato o l'indirizzo nel caso venga verificato
    */
    function verificaURL($url) {
        
    $url filter_var($urlFILTER_SANITIZE_URL);
        if (!
    filter_var($urlFILTER_VALIDATE_URL) === false) {
            return 
    $url;
        } else {
            return 
    false;
        }
    }    
    //    verificaURL()

    /**
    *    Verifica una stringa per il tipo di caratteri passati
    *      Mantiene solo numeri e caratteri, non usare per le password prevedono anche caratteri grafici.
    */
    function verificaStringa$valore ) {
        
    $options = array ( 'flags' => array( 'FILTER_FLAG_STRIP_LOW''FILTER_FLAG_STRIP_HIGH' ));
        
    $valore filter_var$valoreFILTER_SANITIZE_STRING$options );
    return 
    $valore;
    }    
    //    verificaStringa()

    /**
    *    Effettua il trimming dei dati passati alla funzione
    *      Uso con gli array, soprattutto quelli globali come POST, GET, ecc.
    *      Uso: array_walk($_POST, 'trimValue');
    */
    function trimValue( &$value ) {
        if ( !
    is_array$value )) $value trim$value" \t\n\r\0\x0B" );
    }    
    //    trimValue()

    Generatori di codice ( per uniqid o password, ecc. )
    PHP:
    /**
     *    Genera un numero unico da usarsi per password e salt.
     *     $length = numero di caratteri da usarsi in uscita.
    */
    function makeUnique ($length=16) {
       
    $salt       'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
       
    $len        strlen($salt);
       
    $makepass   '';
       
    mt_srand(10000000*(double)microtime());
       for (
    $i 0$i $length$i++) {
           
    $makepass .= $salt[mt_rand(0,$len 1)];
       }
    return 
    $makepass;
    }    
    //    makeUnique()

    /**
    *    Crea una password casuale sulla base di makeUnique() con 10 caratteri come valore predefinito.
    */
    function creaPassTemp$caratteri 10 ) {
    return 
    makeUnique$caratteri );
    }    
    //    creaPass()
    Tutte queste funzioni le ho messe in un file unico che allego all'occorrenza, ovviamente niente vieta di inserirle altrove o fare più file.
    Anzi sarebbe interessante se qualcuno ha altre funzioni a tema di crearne ancora, potrebbe uscrine un MrWebmasterGenericFileFunction.inc.php chissà.
     
Sto caricando...

Condividi questa Pagina