Cerca
Blogosfere
Feb 07 2

PHP tips

Pubblicato da Stefano Cutello alle 14:21 in PHP


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)
Conoscete qualche altra accortezza o trucchetto php? Avete voi consigli da dare? Vuoi un consiglio se è meglio una funzione piuttosto che un'altra? Segnalalo nei commenti, cercherò di aiutarti! :-)

[fonti: PHPBuilder SitePoint Moskalyuk Blog]

Trackback

Indirizzo di Trackback per questo post:
http://blog.blogosfere.it/mte/mt-tb.php?tb_id=51847

Commenti

1. Elvis, Martedì 20 Novembre 2007 ore 14:11

Vorrei proporre un trucchetto che uso spesso per il debug:

A fine script:

<pre><? function f() {print_r ($GLOBALS);}
f(); ?></pre>

Stampa tutte le variabili del documento, comprese le superglobali ad albero 

 

2. Piccolo Principe, Martedì 19 Febbraio 2008 ore 18:48


  • $row[’id’] è 7 volte più veloce che $row[id]
Più che altro la seconda è un errore di sintassi.
  • Se un metodo puoi considerlarlo statico , dichiaralo così! La velocità aumenta di 4 volte!
Da dove arrivano questi dati?
  • Evita funzioni del tipo __get, __set, __autoload
__autoload è fondamentale per evitare lunghe liste di include e require.

Scrivi un commento

:

:

:

(facoltativo):

Attendere la pubblicazione del commento
Foto & Video
Post più letti
Ultimi commenti
Archivi

Mappa del blog

Tag
Profilo
Newsletter
Logo Blogosfere
Cronaca e Attualità
Cultura
Economia e Finanza
High Tech
Politica e Società
Scienza e Salute
Spettacoli
Sport e Motori
Style e Fashion
Tempo libero

Speciali
In cerca d'autore
  • Vuoi curare uno dei nostri blog in cerca d'autore? Per conoscere i blog liberi scrivici a bloggers@blogosfere.it
Business Blog
Ultime di High Tech
Ultime da Blogosfere
Link utili
Partner tecnici
  • Logo SixApart
  • Logo MySyndicaat