PHP e Lincoln (Rhode Island): differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
m Arricchimento intestazione
 
FrescoBot (discussione | contributi)
 
Riga 1:
{{S|centri abitati del Rhode Island}}
{{nota disambigua|altre voci che possono riferirsi alla stessa combinazione di 3 caratteri|[[PHP (disambigua)]]}}
{{Divisione amministrativa
{{Linguaggio di programmazione
|nomeNome = PHPLincoln
|Nome ufficiale = {{en}} Town of Lincoln, Rhode Island
|immagine = PHP-logo.svg
|Panorama =
|didascalia = PHP: Hypertext Preprocessor
|Didascalia =
|autore = PHP Group
|Bandiera =
|data = [[1995]]<ref>{{cita web|url=http://itc.conversationsnetwork.org/shows/detail3298.html#|titolo=PHP on Hormones|editore=Itc.conversationsnetwork.org|data=26 aprile 2007|accesso=11 gennaio 2013}}</ref>
|Stemma =
|versione = 5.5.8<br />(9 gennaio [[2014]])
|Stato = USA
|utilizzo = Applicazioni web lato server
|Grado amministrativo = 3
|paradigmi = [[Programmazione imperativa|Imperativo]], [[Programmazione funzionale|funzionale]], [[Programmazione orientata agli oggetti|orientato agli oggetti]], [[Programmazione procedurale|procedurale]], [[Riflessione (informatica)|riflessione]]
|Tipo = ''[[Comuni degli Stati Uniti d'America|town]]''
|tipizzazione = Debole
|Divisione amm grado 1 = Rhode Island
|specifiche =
|Divisione amm grado 2 = Providence
|estensione = .php
|Voce divisione amm grado 2 =
|influenzato_da = <!-- Lista di linguaggi che hanno influenzato il linguaggio in esame, citare le fonti -->
|Amministratore locale =
|ha_influenzato = <!-- Lista di linguaggi influenzati dal linguaggio in esame, citare le fonti -->
|Partito =
|implementazione_riferimento = Interprete
|Data elezione =
|sistema_operativo = [[Multipiattaforma]]
|Data istituzione =
|lingua = <!-- Lingue supportate dall'impl. di riferimento -->
|Altitudine =
|licenza = [[Licenza PHP|PHP License]] 3.01
|Superficie = 49.1
|sito_web = [http://www.php.net www.php.net]
|Note superficie =
|Abitanti = 20898
|Note abitanti =
|Aggiornamento abitanti = 2000
|Divisioni confinanti =
|Codice postale = 02802, 02865, 02838
|Targa =
|Nome abitanti =
|Patrono =
|Festivo =
|Mappa = Rhode Island Municipalities Lincoln Highlighted.png
|Didascalia mappa =
|Sito = http://www.lincolnri.org/
}}
'''Lincoln''' è una città degli [[Stati Uniti d'America]], nella [[Contea di Providence]], nello Stato del [[Rhode Island]].
'''PHP''' ([[acronimo ricorsivo]] di "PHP: Hypertext Preprocessor", [[preprocessore]] di [[ipertesti]]; originariamente acronimo di "Personal Home Page"<ref>{{cita web |url=http://it.php.net/history |titolo=History of PHP and related projects |autore=The PHP Group |accesso=26 aprile 2011}}</ref>) è un [[Linguaggio di programmazione#Linguaggi di scripting|linguaggio di programmazione]] [[interprete (informatica)|interpretato]], originariamente concepito per la programmazione di [[pagine web dinamiche]]. L'interprete PHP è un [[software libero|Free and Open Source Software]] (ma la sua licenza è incompatibile con la [[GNU General Public License]]).
 
La popolazione era di 20.898 abitanti nel censimento del [[2000]].
Attualmente è principalmente utilizzato per sviluppare [[Applicazione web|applicazioni web]] [[lato server]], ma può essere usato anche per scrivere [[script]] a [[Interfaccia a riga di comando|riga di comando]] o applicazioni [[stand-alone (informatica)|stand-alone]] con [[interfaccia grafica]].
 
Un esempio di software scritto in PHP è [[MediaWiki]], su cui si basano progetti [[wiki]] come [[Wikipedia]] e [[Wikizionario]].
 
== Cenni storici ==
Nato nel [[1994]] ad opera del danese [[Rasmus Lerdorf]], PHP era in origine una raccolta di ''script'' [[Common Gateway Interface|CGI]] che permettevano una facile gestione delle pagine personali. Il significato originario dell'[[acronimo]] era '''''P'''ersonal '''H'''ome '''P'''age'' (secondo l'annuncio originale di PHP 1.0 da parte dell'autore sul newsgroup comp.infosystems.www.authoring.cgi<ref>{{cita web |titolo=Announce: Personal Home Page Tools (PHP Tools) |url=http://groups.google.ch/group/comp.infosystems.www.authoring.cgi/msg/cc7d43454d64d133?oe=UTF-8&output=gplain |data=8 giugno 1995 |accesso=6 luglio 2011}}</ref>).
 
Il pacchetto originario venne in seguito esteso e riscritto dallo stesso Lerdorf in [[C (linguaggio)|C]], aggiungendo funzionalità quali il supporto al database [[mSQL]] e prese a chiamarsi '''PHP/FI''', dove ''FI'' sta per '''''F'''orm '''I'''nterpreter'' (interprete di ''form''), prevedendo la possibilità di integrare il codice PHP nel codice [[HTML]] in modo da semplificare la realizzazione di pagine dinamiche. In quel periodo, 50.000 domini Internet annunciavano di aver installato PHP.
 
A questo punto il linguaggio cominciò a godere di una certa popolarità tra i progetti ''open source'' del ''[[web]]'', e venne così notato da due giovani programmatori: [[Zeev Suraski]] e [[Andi Gutmans]]. I due collaborarono nel [[1998]] con Lerdorf allo sviluppo della terza versione di PHP (il cui acronimo assunse il significato attuale) riscrivendone il motore che fu battezzato [[Zend]] da una contrazione dei loro nomi. Le caratteristiche chiave della versione PHP 3.0, frutto del loro lavoro, erano la straordinaria estensibilità, la connettività ai [[database]] e il supporto iniziale per il [[Programmazione orientata agli oggetti|paradigma a oggetti]]. Verso la fine del 1998 PHP 3.0 era installato su circa il 10% dei server web presenti su Internet.
 
PHP diventò a questo punto talmente maturo da competere con [[Active Server Pages|ASP]], linguaggio ''lato server'' analogo a PHP sviluppato da [[Microsoft]], e cominciò ad essere usato su larga scala. La versione 4 di PHP venne rilasciata nel [[2000]] e prevedeva notevoli migliorie.
Attualmente siamo alla quinta versione, sviluppata da un [http://www.php.net/credits.php team] di programmatori, che comprende ancora Lerdorf, oltre a Suraski e Gutmans.
 
La popolarità del linguaggio PHP è in costante crescita grazie alla sua flessibilità: nel giugno [[2001]], ha superato il milione di siti che lo utilizzano.
Nell'ottobre [[2002]], più del 45% dei [[server]] [[Apache HTTP Server|Apache]] usavano PHP.
 
Nel gennaio [[2005]] è stato insignito del titolo di "Programming Language of 2004" dal [[TIOBE Programming Community Index]]<ref>{{cita web |titolo=TIOBE Software Award |url=http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html}}</ref>, classifica che valuta la popolarità dei linguaggi di programmazione sulla base di informazioni raccolte dai [[Motore di ricerca|motori di ricerca]].
 
Nel [[2005]] la configurazione [[LAMP (piattaforma)|LAMP]] ([[Linux]], [[Apache HTTP Server|Apache]], [[MySQL]], PHP) supera il 50% del totale dei server sulla rete mondiale.
 
Nel 2008 PHP 5 è diventata l'unica versione stabile in fase di sviluppo. A partire da PHP 5.3.0, PHP implementa una funzione chiamata "late static binding" che può essere utilizzata per fare riferimento alla classe chiamata in un contesto di eredità statica.
 
A partire dal 5 febbraio 2008, a causa dell'iniziativa '''GoPHP5''', sostenuta da una serie di sviluppatori PHP, molti dei progetti open-source di alto profilo cessano di supportare PHP 4 nel nuovo codice e promuovono il passaggio da PHP 4 a PHP 5.
 
== Caratteristiche ==
PHP riprende per molti versi la [[sintassi]] del [[C (linguaggio)|C]], come peraltro fanno molti linguaggi moderni, e del [[Perl]]. È un linguaggio a [[tipizzazione debole]] e dalla versione 5 migliora il supporto al paradigma di [[Programmazione orientata agli oggetti|programmazione ad oggetti]]. Certi costrutti derivati dal ''C'', come gli operatori fra [[Bit (informatica)|bit]] e la gestione di [[Stringa (informatica)|stringhe]] come [[array]], permettono in alcuni casi di agire a basso livello; tuttavia è fondamentalmente un [[Linguaggio di programmazione ad alto livello|linguaggio di alto livello]], caratteristica questa rafforzata dall'esistenza delle sue moltissime [[Application programming interface|API]], oltre 3.000 funzioni del nucleo base.
 
PHP è in grado di interfacciarsi a innumerevoli [[DBMS|database]] tra cui [[MySQL]], [[PostgreSQL]], [[MariaDB]], [[Oracle]], [[Firebird SQL|Firebird]], [[DB2|IBM DB2]], [[Microsoft SQL Server]], solo per citarne alcuni, e supporta numerose tecnologie, come [[XML]], [[SOAP]], [[Internet Message Access Protocol|IMAP]], [[File Transfer Protocol|FTP]], [[CORBA]]. Si integra anche con altri linguaggi/piattaforme quali [[Linguaggio di programmazione Java|Java]] e [[.NET]] e si può dire che esista un [[wrapper]] per ogni libreria esistente, come CURL, [[GD Graphics Library|GD]], [[Gettext]], GMP, Ming, [[OpenSSL]] ed altro.
 
Fornisce un'[[Application programming interface|API]] specifica per interagire con [[Apache HTTP Server|Apache]], nonostante funzioni naturalmente con numerosi altri [[Web server|server web]]. È anche ottimamente integrato con il database [[MySQL]], per il quale possiede più di una API. Per questo motivo esiste un'enorme quantità di [[script]] e [[Libreria software|librerie]] in PHP, disponibili liberamente su [[Internet]]. La versione 5, comunque, integra al suo interno un piccolo database embedded, [[SQLite]].
 
Dispone di un archivio chiamato [[PEAR]] che mette a disposizione un framework di [[Libreria software|librerie]] riusabili per lo sviluppo di applicazioni PHP e di [http://pecl.php.net PECL] che raccoglie tutte le estensioni conosciute scritte in C.
 
PHP non ha ancora un supporto nativo per le stringhe Unicode o multibyte; il supporto Unicode è in fase di sviluppo per una futura versione di PHP, e consentirà di usare caratteri non ASCII in stringhe e nomi di funzioni, classi e metodi.
 
=== Sicurezza ===
Da alcune indagini è possibile osservare come la percentuale di software non sicuro scritto in PHP, sul totale di tutte le falle di sicurezza nei software elencate dal [[Common Vulnerabilities and Exposures]], ammontava al: 12% nel 2003, 20% nel 2004, 28% nel 2005, '''43% nel 2006''', 36% nel 2007, 34.8% nel 2008, 29.9% nel 2009 e 27.2% nel 2010<ref>{{cita web |titolo=PHP-related vulnerabilities on the National Vulnerability Database |url=http://www.coelho.net/php_cve.html |accesso=6 luglio 2011}}</ref>. La quasi totalità di queste vulnerabilità note ha origine da mancati adempimenti delle [[best practice]] da parte dei programmatori e relativi abusi di particolari funzionalità offerte dal PHP che in determinati utilizzi danno origine a gravi vulnerabilità. Un esempio noto sono i problemi legati agli abusi di '''Register globals''' e '''Magic quotes''', funzionalità che se usate in modo errato potevano degenerare in vere e proprie [[backdoor]] all'interno del proprio programma PHP. Per evitare problemi di questo tipo molte di queste funzionalità sono state via via deprecate se non addirittura rimosse nel susseguirsi delle versioni di PHP (un esempio sono le stesse due citate).<ref>[http://www.php.net/manual/it/security.globals.php Register Globals deprecato e rimosso da PHP 5.4.0]</ref><ref>[http://www.php.net/manual/it/security.magicquotes.php Magic Quotes deprecato e rimosso da PHP 5.4.0]</ref>.
 
Bisogna comunque osservare che il picco di software con problemi di sicurezza (2006) è associabile temporalmente con precedenti versioni di PHP in cui le configurazioni di default lasciavano spazio a una relativa semplicità nello scrivere software con potenziali problemi di sicurezza anche gravi.
 
È sempre buona norma rivedere la propria configurazione di PHP (contenuta generalmente nel file '''php.ini''') per rivedere le funzionalità attivate. Di solito nel file stesso si documentano 3 tipi di configurazioni: Configurazione di PHP di '''default''', configurazione in un ambiente di '''sviluppo''' (per esempio con la possibilità di vedere a video gli errori), e configurazione in un ambiente di '''produzione''' (dove per esempio si deve aprire un file di log per vedere gli errori e non sono mostrati a video).
 
== Esempi di codice ==
=== Variabili ===
Le variabili in PHP iniziano sempre con il simbolo del dollaro (<code>$</code>) e vengono istanziate senza definire esplicitamente il "tipo":
<source lang=php>$saluto = "Ciao mondo!";</source>
Ecco istanziata una stringa. Per mostrare il contenuto di <code>$saluto</code>, in seguito occorre l'istruzione <code>echo</code>:
<source lang=php>echo $saluto;</source>
E si visualizzerà “<code>Ciao mondo!</code>”. Se invece la variabile <code>$saluto</code> non esistesse, generalmente <code>echo</code> genererebbe un errore.
 
==== Stringhe ====
In PHP una stringa si istanzia in due modi: con apici doppi o singoli.
Con gli apici doppi eventuali testi speciali dentro alla stringa vengono elaborati (per esempio nomi di variabili inizianti con il dollaro (<code>$</code>) oppure caratteri speciali come la tabulazione <code>\t</code>).
Con gli apici singoli la stringa è salvata così com'è.
 
Si può dire che gli apici singoli si utilizzino per creare stringhe più velocemente in quanto non vengono processati eventuali contenuti dinamici. Le doppie stringhe per le restanti occasioni.
 
Esempio di composizione della frase "Wikipedia è meravigliosa" in due modi: giocando con apici singoli e doppi:
<source lang=php>
$uno = 'Wikipedia';
$due = 'è';
$tre = 'meravigliosa';
 
echo $uno . ' ' . $due . ' ' . $tre;
echo "$uno $due $tre";
</source>
 
==== Array ====
PHP gestisce gli array come delle mappe associative ovvero come delle chiavi a cui si associa un certo valore. Ciò è ottimizzato per usi differenti: Gli array in PHP possono essere non solo usati come comuni array ma anche come una lista (vettore), un dizionario, una stack, una coda, e molto altro. Inoltre un qualsiasi elemento dell'array può a sua volta contenere altri array (anche multidimensionali)<ref name="PHP-manuale-array">[http://it1.php.net/manual/it/language.types.array.php Manuale PHP - array]</ref>, ciò fa degli array una vera peculiarità del PHP.
 
Codice d'esempio di creazione di un array, immaginando di avere una lista di età e di voler sommare l'età di Piermaria con l'età di Franco.
<source lang=php>
$anni = array('piermaria' => 11, 'franco' => 12, 'antonio' => 6);
 
$somma = $anni['piermaria'] + $anni['franco'];
 
echo $somma; // Output: 23
</source>
 
L'utilizzo e la creazione degli array è un argomento talmente ricco di funzionalità che consigliamo di approfondire attraverso il manuale online<ref name="PHP-manuale-array" />.
 
=== Funzioni ===
Le funzioni in PHP possono avere un mix di parametri opzionali con valori predefiniti o parametri obbligatori (per questo motivo il concetto di [[overloading]] in PHP è perfettamente inutile).
Esempio di funzione con un parametro obbligatorio e uno opzionale con valore predefinito.
<source lang=php>
<?php
function apprezza( $soggetto, $apprezzamento = "libera" ) {
return "Lasciatemi dire che $soggetto è $apprezzamento poiché contribuire è facile!";
}
 
echo apprezza("Wikipedia");
// Output: Lasciatemi dire che Wikipedia è libera poiché contribuire è facile!
 
echo apprezza("Wikidizionario", "meraviglioso");
// Output: Lasciatemi dire che Wikidizionario è meraviglioso poiché contribuire è facile!
?>
</source>
 
Qualunque variabile di qualunque tipo creata dentro alla funzione diventa locale. Per specificare variabili globali dentro alla funzione si usa <code>global $variabile;</code>. Esempio:
<source lang=php>
<?php
function esperimento() {
global $a;
$a = "tre";
$b = "quattro";
echo "Durante: $a $b";
}
 
$a = "uno";
$b = "due";
 
echo "Prima: $a $b";
esperimento();
echo "Dopo: $a $b";
?>
</source>
Il risultato sarà: <code>Prima uno due Durante tre quattro Dopo tre due</code>.
 
=== Inclusioni ===
È possibile includere una pagina PHP all'interno di un'altra per eseguirne il codice (con perciò possibilità di evitare codice ridondante e accedere a variabili, funzioni e classi definite nella pagina inclusa).
 
Per farlo si utilizza una delle seguenti istruzioni: <code>include</code><ref>[http://www.php.net/manual/it/function.include.php Manuale PHP - include]</ref>, <code>include_once</code><ref>[http://it2.php.net/manual/it/function.include-once.php Manuale PHP - include_once]</ref>, <code>require</code><ref>[http://it2.php.net/manual/it/function.require.php Manuale PHP - require]</ref> e <code>require_once</code><ref>[http://it2.php.net/manual/it/function.require-once.php Manuale PHP - require_once]</ref>. Esempio:
<source lang=php><?php
include 'header.php';
echo "Ciao mondo!";
include 'footer.php';
?></source>
 
A seconda di diverse sottigliezze si decide con che istruzione includere la pagina:
* Si usa <code>include</code> quando si vuole che venga inviato soltanto un '''segnale di avviso''' senza interrompere il seguito del programma se la pagina da includere non esiste.
* Si usa <code>require</code> quando si vuole che venga inviato un '''segnale di errore fatale di compilazione''' e il programma venga interrotto se la pagina da includere non esiste.
* Si usa <code>include_once</code>, <code>require_once</code> quando si vuole poter ripete il comando più volte senza che la pagina venga inclusa più di una volta. Se la pagina da includere non esiste si comportano analogalmente ai rispettivi sopra citati.
 
=== Gestione dei parametri ===
Il PHP permette il passaggio di informazioni da una pagina all'altra attraverso le diverse funzionalità supportate dall'[[Hyper_Text_Transfer_Protocol#Riga_di_richiesta|HTTP]], in specifico richieste di tipo '''GET''' (informazioni parametrizzate nella barra degli indirizzi), '''POST''' (informazioni con origine da un precedente submit da un web-form, generalmente) e dei COOKIE (informazioni parametrizzate in piccole stringhe di testo salvate fisicamente su un browser), insieme al supporto alle sessioni (funzionalità basata sull'utilizzo dei cookie).
Queste informazioni sono utilizzabili in PHP tramite 4 [[array]] di tipo associativo: '''$_GET''', '''$_POST''', '''$_COOKIE''', '''$_SESSION'''.
 
Ipotetica gestione di un parametro GET. Richiesta d'esempio: http://example.org/esempio.php?pippo=Ciao. Contenuto di '''leggi.php''' (Mostrerà "Ciao"):
<source lang=php>
<?php
// Controllo se è stato ricevuto il parametro pippo tramite metodo GET
if( isset( $_GET['pippo'] ) ) {
 
// Salvo nella variabile $parametro il parametro pippo
$parametro = $_GET['pippo'];
 
// Questo si esegue per sicurezza, "disinnescando" qualunque contenuto HTML contenuto in $parametro
$parametro = htmlentities( $parametro );
 
// Mostro a video il parametro
echo $parametro;
} else {
echo "Nessun parametro di nome pippo trovato.";
}
?>
</source>
 
=== Una funzione con controllo sugli argomenti ===
<source lang="php">
<?php
function get_hello_world($value1, $value2)
{
$result = "";
if ($value1 != "")
{
$result .= $value1;
}
 
// .= è un operatore di concatenazione;
// Il "." (punto) deriva dall'operazione di concatenazione delle stringhe nella teoria dei linguaggi;
 
if (($value1 != " ") && ($value2 != " "))
{
$result .= " ";
}
// !empty($value2) equivale a: $value2 != ""
// Il "!" (punto esclamativo) serve per negare un valore booleano (true / false)
if (!empty($value2))
{
$result .= $value2;
}
return $result;
}
echo get_hello_world("Hello", "world");
?>
</source>
 
=== Il ciclo for ===
<source lang=php>
<?php
/*
* In questo caso la variabile $n viene stampata a video, successivamente
* viene incrementata di 1, il ciclo termina quando $n è maggiore di 9.
*/
 
for($n=0; $n<=9; $n++){
echo $n;
}
 
// Output -> 0123456789
?>
</source>
 
=== I cicli while ===
<source lang=php>
<?php
/*
* In questo caso vediamo come stampare a video dei risultati estratti
* da un database MySQL, eseguendo una query SQL.
* Questo script è incompleto, in quanto prima è necessario effettuare
* il collegamento al database MySQL tramite mysqli.
*/
 
$esempio = $mysqli->query("SELECT id FROM persone");
 
while($riga = mysql_fetch_assoc($esempio)) {
echo $riga['id'] . "<br />";
}
 
/*
* In questo modo estraiamo dei dati da un database MySQL
* sotto forma di array che verrà poi stampato tramite un ciclo while
*/
?>
</source>
 
=== 99 Bottles of Beer ===
Il seguente esempio stampa il testo della canzone ''[[99 Bottles of Beer]]''.
<source lang="php">
<?php
/*
* Questo è un commento. Altri modi per commentare sono i simboli // e #
* Questo tipo di commenti non ha bisogno degli asterischi (*) all'inizio
* di ogni riga, ma lo si fa per convenzione. I simboli // e #
* commentano solo il testo che si trova dopo di essi e fino alla fine della riga;
* non c'è bisogno di finire il commento con qualche carattere speciale.
*/
/*
* Prima definiamo una funzione chiamata "plural".
* Restituisce una "s" se l'argomento passato non è 1.
*/
function plural($number)
{
// L'operatore ternario (!= ? :) è una struttura condizionale
// simile a if-else: (condizione ? true : false)
return ($number != 1 ? "s" : "");
}
// Definiamo una variabile chiamata $a_capo che contiene un a capo HTML,
// un carattere di ritorno e uno di nuova riga:
$a_capo = "<br />\r\n";
for ($i = 99; $i > 0; $i--) {
print "$i bottle" . plural($i) . " of beer on the wall,$a_capo";
// Non abbiamo bisogno di ripetere il comando print per ogni riga:
print "$i bottle" . plural($i) . " of beer.$a_capo
Take one down, pass it around,$a_capo" .
($i - 1 != 0 ? $i - 1 : "no more") .
" bottle" . plural($i - 1) . " of beer on the wall.$a_capo$a_capo";
/*
* PHP permette di creare stringhe su più righe, finché
* trova un punto e virgola (;) che termina l'istruzione.
* Un punto (.) concatena insieme più stringhe.
* Le variabili, che iniziano con il carattere "$", sono interpretate
* anche dentro i doppi apici ("), ma non dentro gli apici singoli (').
* Le funzioni, come plural(), non sono interpretate fra gli apici.
*/
}
 
print "Go to the store, $a_capo buy some more, $a_capo 99 bottles of beer on the wall!";
 
?>
</source>
 
=== Esempio connessione con database MySql usando l'estensione MySQLi ===
Il PHP permette l'elaborazione di dati da database MySQL, i quali verranno richiesti, inseriti e modificati attraverso opportune "query". Tutto ciò è possibile grazie ad alcune estensioni, tra cui spicca per importanza MySQLi.
 
L’estensione [http://it1.php.net/manual/it/book.mysqli.php MySQLi] (dove la "i" sta per "improved") è stata messa a disposizione di PHP per sfruttare alcune nuove funzionalità messe a disposizione dalle versioni di MySQL 4.1.3 e successive ed è disponibile per PHP 5 e release superiori. Risulta essere al momento l'estensione più performante e dinamica.
 
Qui un esempio.
Prima proviamo a connetterci con il database, e poi richiediamo un tale dato presente in quel database.
 
<source lang="php">
<?php
// Connessione a MySQL con l'estensione MySQLi
$mysqli = new mysqli('localhost', 'nome_utente_database', 'password_database', 'nome_database');
 
/*
* Questo è il modo ufficiale di controllare se una connessione MySQL è fallita,
* MA $connect_error non è supportato fino a PHP 5.2.9 e 5.3.0.
*/
if ($mysqli->connect_errno) {
die("Connessione fallita, motivi: " . $mysqli->connect_error);
}
 
// Proviamo una query ipotizzando che stiamo elaborando dati provenienti da una simil-rubrica:
$SQLQuery = $mysqli->query("SELECT indirizzo, telefono FROM utenti WHERE nome = 'Francesca' ");
 
// Da questa query otterremo l'indirizzo e il telefono della persona di nome Francesca, ipotizzando sia presente nella tabella utenti del database in questione.
 
// Ora "trasformiamo" i dati ricevuti dalla query in un array associativo utilizzabile successivamente
$row = $SQLQuery->fetch_assoc();
 
// Mostriamo a video per esempio il numero di telefono dall'array
echo "Il numero di telefono di Francesca è: " . $row['telefono'];
 
// Chiusura della connessione al database
$mysqli->close();
?>
</source>
 
Questo accenno, doveroso al fine di carpire le potenzialità di PHP nell'interfacciarsi facilmente con database relazionali quali il MySQL, è altresì da completare e approfondire con i relativi manuali online, free, ed in lingua originale o in italiano.<ref>[http://it2.php.net/manual/it/mysqli.construct.php|MySQLi:query]</ref>
 
== php.ini ==
Il file di configurazione di PHP, chiamato php3.ini in PHP 3, e poi semplicemente php.ini nelle versioni successive, è letto all'avvio dell'interprete del linguaggio e fornisce le impostazioni dei vari moduli con cui l'interprete è stato compilato. Nella versione server modulare di PHP, questo avviene solo una volta, all'avvio del [[Web Server|server web]]. Per le versioni [[Common Gateway Interface|CGI]] e [[CLI]], invece, è invocato ad ogni richiesta.
 
Per visualizzare tutte le opzioni di configurazione è possibile utilizzare la funzione phpinfo().
 
== Ambienti di sviluppo ==
{{div col}}
* {{en}} [http://www.aptana.com Aptana]
* {{en}} [http://www.embarcadero.com/products/delphi_for_php/ Delphi4php]
* {{en}} [http://bluefish.openoffice.nl Bluefish]
* {{en}} [http://www.dreamweaver.com Dreamweaver CS5.5]
* {{en}} [http://www.blumentals.net/webuilder/ WeBuilder 2007]
* {{en}} [http://www.maguma.com Maguma Workbench]
* {{en}} [http://www.nusphere.com NuSphere PHPEd]
* {{en}} [http://www.mpsoftware.dk PHP Designer 2008]
* {{en}} [http://www.eclipse.org/pdt PDT (Eclipse Platform)]
* {{en}} [http://www.phpeclipse.de PHPEclipse (Eclipse Platform)]
* {{en}} [http://netbeans.org NetBeans]
* {{en}} [http://devphp.sourceforge.net Dev-PHP]
* {{en}} [http://www.waterproof.fr PHPEdit]
* {{en}} [http://quanta.kdewebdev.org Quanta Plus]
* {{en}} [http://www.phpside.org Side]
* {{en}} [http://www.xored.com/trustudio Xored TruStudio]
* {{en}} [http://www.zend.com/store/products/zend-studio.php Zend Studio]
* {{en}} [http://www.c-point.com/php_editor.php Antechinus PHP Editor]
* {{en}} [http://www.gphpedit.org gPHPEdit]
* {{en}} [http://www.jedit.org jEdit]
* [http://www.pspad.com/it PSPad]
* {{en}} [http://www.vim.org Vim]
* {{en}} [http://www.gnu.org/software/emacs/ Emacs]
* {{en}} [http://www.scintilla.org/SciTE.html SciTE]
* [http://hapedit.free.fr HAP EDIT]
* {{en}} [http://www.activestate.com/komodo-ide Komodo IDE]
* {{en}} [http://www.activestate.com/komodo-edit Komodo Edit]
* [http://notepad-plus.sourceforge.net/it/site.htm Notepad++]
* [[Notepad]] (blocco note di [[Windows]])
* [[Notepad2]] (evoluzione del notepad di [[Windows]])
* [[gedit]]
* [[PhpGedView]]
* Qualsiasi altro [[editor di testo]]
{{div col end}}
 
== Note ==
<references/>
 
== Bibliografia ==
* Zak Greant, Graeme Merrall, Torben Wilson, Brett Michlitsch (2002): ''PHP Functions Essential Reference'', Sams, ISBN 0-7357-0970-X
* Luke Welling, Laura Thomson (2004): ''PHP and MySQL Web Development'', 3rd ed., SAMS, ISBN 0-672-32672-8
* Matt Zandstra (2004): ''PHP 5 Objects, Patterns, and Practice'', Apress, ISBN 1-59059-380-4
* Eric Rosebrock, Eric Filson (2004): ''Setting Up LAMP: Getting Linux, Apache, MySQL, and PHP Working Together'', SYBEX, ISBN 0-7821-4337-7
* Cristian Darie, Mihai Bucica (2004): ''Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional'', Apress, ISBN 1-59059-392-8
* David Powers (2005): ''Foundation PHP 5 for Flash'', Friends of ED, ISBN 1-59059-466-5
* Elizabeth Naramore, (2005): ''Beginning PHP5, Apache, and MySQL Web Development'', Wrox, ISBN 0-7645-7966-5
* Thomas Myer (2005): ''No Nonsense XML Web Development With PHP'', [[SitePoint]], ISBN 0-9752402-0-X
* Marc Wandschneider (2005): ''Core Web Application Development with PHP and MySQL'', Prentice-Hall, ISBN 0-13-186716-4
* Steven Holzner (2005): ''Spring Into PHP 5 '', Addison-Wesley, ISBN 0-13-149862-2
* (2005): ''Building Online Communities with phpBB 2 '', Packt Publishing, ISBN 1-904811-13-2
* (2005): ''Web Standards Programmer's Reference: HTML, CSS, JavaScript, Perl, Python, and PHP'', Wrox, ISBN 0-7645-8820-6
* Chris Newman (2005): ''Sams Teach Yourself PHP in 10 Minutes'', ISBN 0-672-32762-7
* Paul Hudson (2005): ''PHP in a Nutshell'', O'Reilly, ISBN 0-596-10067-1
* Andi Gutmans, Stig S. Bakken, Derick Rethans (2005): ''PHP 5: Guida completa'', Apogeo, ISBN 88-503-2304-2
* Jack Herrington (2006), ''PHP Trucchi e segreti'', Tecniche Nuove Hops, ISBN 88-481-1951-4
* Rasmus Lerdorf (2003), ''PHP Pocket Reference'', Tecniche Nuove Hops, ISBN 88-8378-070-1
* Peter B. MacIntyre (2010), ''PHP – Le tecniche per scrivere il codice migliore'', Tecniche Nuove, ISBN 978-88-481-2505-5
 
== Voci correlate ==
* [[Active Server Pages]]
* [[EasyPHP]]
* [[LAMP_(piattaforma)|LAMP]]
* [[MAMP]]
* [[WAMP]]
* [[PHP-GTK]]
* [[PHP_Extension_and_Application_Repository|PEAR]]
* [[Perl]]
 
== Altri progetti ==
{{interprogetto|commons=Category:PHP|b=PHP|v=PHP}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://php.net/ PHP.net]
* {{Dmoz|World/Italiano/Computer/Programmazione/Php/|Php}}
 
{{Framework per applicazioni web}}
{{Principali linguaggi di programmazione}}
{{FOSS}}
{{Portale|informatica|software libero|Telematica}}
 
{{Contea di Providence}}
[[Categoria:Formati di file]]
{{Rhode Island}}
[[Categoria:Linguaggio PHP]]
{{Portale|Stati Uniti d'America}}
 
[[Categoria:Comuni del Rhode Island]]
{{Link VdQ|en}}