Trucchi PHP

September 10

Nel 2009, Enterprise PHP Magazine stima circa un milione di curricula sono stati in linea appartenenti ai programmatori PHP. Soprattutto in di oggi collaborativo on-line e l'ambiente sociale, programmatori PHP condividere conoscenze, suggerimenti e trucchi con l'altro per aiutare i nuovi ed esperti programmatori allo stesso modo. trucchi PHP sono di solito modi per affrontare un problema o di codifica trucchi che rendono uno script migliore, migliorando le prestazioni di script, prendendo meno tempo per il codice, riducendo le dimensioni del codice o aumentare la leggibilità del codice. E 'utile anche per i programmatori PHP molto esperti per esaminare i trucchi di volta in volta e di implementare nel loro proprio codice in modo che non sono stati dimenticati.

O tra le dichiarazioni

Se si sta verificando un codice di ritorno booleano da una funzione e di agire sul risultato, spesso è possibile scrivere una dichiarazione più compatto con "o" che è anche più facile da leggere di un modo tradizionale di codifica del confronto. Ad esempio, si consideri il seguente codice che tenta di connettersi a un server di database MySQL ed esce dal programma se la connessione non è stata fatta con successo:

$ DBC = mysql_connect_db ( "localhost", $ username, $ password);
if (! $ DBC) {
muori();
}

È possibile scrivere la stessa dichiarazione su una sola riga, collegando le dichiarazioni con "oppure:"

$ DBC = mysql_connect_db ( "localhost", $ username, $ password) or die ();

Soppressione degli errori MySQL

Nell'esempio precedente, se la connessione al database non riesce, prima dell'applicazione muore, l'estensione PHP MySQL emette un messaggio di errore molto tecnico allo schermo, per esempio:

Attenzione: Accesso negato per l'utente: [email protected] (usando la password: Si) in /var/www/application/html/database.php sulla linea 6

Questo messaggio di errore viene emesso per l'utente, anche se la messaggistica di errore PHP è spento. Per nascondere il messaggio di errore da parte degli utenti, prefisso una chiamata di funzione MySQL con il segno "@" e messaggi di errore MySQL sarà soppressa per tale chiamata. Per includere il proprio messaggio di errore, passare una stringa alla funzione "morire". Per esempio:

$ DBC = @mysql_connect_db ( "localhost", $ username, $ password) or die ( "Impossibile connettersi al server di database!");

Restituzione di Immagini

Ci possono essere casi in cui si desidera restituire una immagine piuttosto che HTML, come ad esempio in un servizio Web. Si può fare, includendo un "Content-Type" per specificare che l'uscita è un'immagine e usando la funzione "ReadFile" per riportare il contenuto del file di immagine. Tornare in HTML mediante l'emissione di un "Content-Type" per l'HTML. Per esempio:

<? Php
...
header ( "Content-type: image / gif");
ReadFile ($ file immagine);
header ( "Content-Type: text / html");
echo "</ body> </ html>";
?>

Ignora utente Annullamento

Se si sta eseguendo un'operazione, ad esempio l'aggiornamento di un database e non si desidera che l'utente sia in grado di interrompere o annullare l'operazione facendo clic sul pulsante di arresto sul browser, è possibile indicare PHP di ignorare i tentativi di annullamento fino al operazione è completa. Per esempio:

<? Php
ignore_user_abort (true);
aggiornare il database();
ignore_user_abort (false);
?>

matrice di ricerca

Se si deve cercare un array, considerare la progettazione della matrice in modo che i valori di matrice diventano le chiavi dell'array ei loro valori corrispondenti sono ogni impostate a uno. Invece di cercare ogni elemento dell'array per una partita, per esempio, con la funzione "in_array", è possibile controllare per vedere se un elemento di un array esistente con la funzione "isset" e migliorare in modo significativo le prestazioni delle ricerche di matrice. Più grande è la matrice, maggiore è il guadagno di prestazioni. Per esempio:

Invece di questo:
<? Php
$ Bevande = array ( "caffè", "tè", "succo", "soda", "latte");
if (in_array ( "tè", $ bevande)) {echo "Tea party!"; }
?>

Questo metodo di codifica è circa tre volte più veloce:
<? Php
$ Bevande = array ( "caffè" => 1, "tè" => 1, "succo" => 1, "soda" => 1, "latte" => 1);
se isset ($ bevande [ "tè"]) {echo "tea party!"; }
?>