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
Funzioni per il trimming dei valori passati via POST o GET
Generatori di codice ( per uniqid o password, ecc. )
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à.
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( $valore, FILTER_SANITIZE_EMAIL );
if ( filter_var( $sanitized, FILTER_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($url, FILTER_SANITIZE_URL);
if (!filter_var($url, FILTER_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( $valore, FILTER_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à.