Ti trovi su Risorse Webmaster > PHP tips

PHP tips




- Pubblicato da Stefano Cutello su WebDev -

Raccolgo in questo post diversti trucchi e finezze per PHP utili sia ai principianti che ai professionisti.

  • Usa sempre un layer di accesso al database (MySQL Connection Class) come PEAR:MDB2
  • Gestire Magic Quotes. La direttiva magic_quotes è utile per prevenire attacchi di SQL injection , però è necessario saper gestire i suoi effetti e rendere il codice indipendente da come questa direttiva è impostata sul server. Questa funzione può fare al caso nostro:
function magicQuotes($post) {
	if (get_magic_quotes_gpc()) {
if (is_array($post) {
return array_map('stripslashes',$post);
} else {
return stripslashes($post);
}
} else {
return; // magic quotes are not ON so we do nothing
}
}
  • Debugging. Usa error_reporting(E_ALL); all'inzio dello script per vedere tuti gli errori/warning/notice oppure usa delle print_r o dei var_dump per verificare il contenuto di una variabile. Ricordati in produzione di usare però error_reporting(0);
  • Programma ad oggetti, sempre. Organizza il tuo codice e non scrivere mai 2 volte del codice che fa le stesse cose.
  • Single Quotes (') e Double Quotes (") sono molto differenti.
  • $row[’id’] è 7 volte più veloce che $row[id] perchè nel secondo caso php pensa che id sia una etichetta (define) e perde tempo a cercare dove è definita
  • Non usare funzioni all'interno di cicli come for ($x=0; $x < count($array); $x) La funzione count() viene chiamata ogni volta quando ne bastava una prima del ciclo $conteggio = count($array); for ($x=0; $x < $conteggio; $x);
  • Se un metodo puoi considerlarlo statico , dichiaralo così! La velocità aumenta di 4 volte!
  • Evita funzioni del tipo __get, __set, __autoload
  • require_once() è più pesante che il semplice require() perchè costringe php ha 'ricordarsi' se un file è già stato incluso o meno
  • Usa full paths negli include/require/etc.. guadagnerai tempo che altrimenti andrebbe speso per risolvere il path relativo
  • Per avere l'ora a cui è stato lanciato lo script usa $_SERVER[’REQUEST_TIME’] invece che time()
  • strncasecmp, strpbrk e stripos sono più veloci che regex
  • preg_replace è più veloce che str_replace; la stessa cosa non vale per strtr che è più veloce preg_replace di 4 volte
  • La soppressione dell'errore con @ è molto lenta. Evitala.
  • Gestire gli errori è costoso, ma volte conviene. Valuta bene.
  • Usa ip2long() e long2ip() per salvare indirizzi IP come interi invece che come stringa (risparmierai spazio e aumenterai velocità di calcolo per eventuali ricerchè/valutazioni)
  • Valida parzialmente un'indirizzo mail vedendo se esiste il dominio con la funzione  checkdnsrr()
  • Usa gzcompress() e gzuncompress() per comprimere delle stringhe prima di salvarle in campi BLOB nel database (guadagni fino al 90% di spazio).  Se però ti serve l'indicizzamento full text evita questo metodo
  • Se vuoi che una funzione ritorni valori multipli (senza sprecare eccessiva memoria) usa dei parametri passati per riferimento ('&' prima del $nomeVariabile)

[fonti: PHPBuilder SitePoint Moskalyuk Blog]

 
© Computer Flash | |