PHP és unllenguatge de programacióinterpretat que s'utilitza per a generarpàgines web de forma dinàmica. S'executa al cantó del servidor, per aquest motiu al navegador web ja l'hi arriba la pàgina en formatHTML, no podent visualitzar-ne el codi php. Tot i que és menys popular, també pot utilitzar-se per generarinterfícies de comandes i aplicacions executables amb interfície gràfica. Disposa de versions tant per aWindows com per aGNU/Linux, així com d'altres.
PHP es distribueix sota lallicència PHP, que laFree Software Foundation qualifica com aprogramari lliure. Les sigles són unacrònim recursiu dePHP:HipertextPreprocessor, tot i que originalment eren les sigles dePersonal Home Page Tools.
PHP pot ser desplegat en la majoria delsservidors web i en tots els sistemes operatius i plataformes sense cost. El llenguatge PHP es troba instal·lat en més de 20 milions dellocs web i en un milió de servidors. Migrar els serveis basats en PHP cap a les noves tecnologies que apareixen, suposa un cost a justificar monetàriament (sobretot, en termes de maquinari i rendiment), per això, parlar si el nombre de llocs basats en PHP s'ha vist reduït progressivament en els últims anys, amb l'aparició de noves tecnologies comNode.js, Golang,ASP.NET, etc., o no, suposa obrir un debat no freturós de fal·làcies i arguments demagògics. És un fet constatat que, al món empresarial, només es canvien les coses quan suposa un avantatge estratègic al mercat. Les empreses manquen d'un sentit que els polaritzin els 'sentiments', emergint una pauta de posicionament mercantilista a favor o en contra d'alguna cosa solament per un sentit despectiu cap a certes tecnologies, tal com succeeix amb el món linux, windows i/o mac en l'àmbit dels usuaris.
Poder-se fer una visió general de com PHP està evolucionant en l'actualitat, és parlar sobre les noves llibreries disponibles, l'ús de matrius,[1] maneig de nombres enters, tractament de la criptografia quan s'usa una Base64,[2][3][4]Web scraping, indexació de webs,precuinat de dades,Macrodades, set de dades,supervisió de dades,set de proposicions dimensionals. Com veiem, una visió general d'aquest llenguatge, és molt més complexa que afirmar que és un llenguatge per al desenvolupament web. Aquesta realitat, subjecte en l'aparició de dominis xyz, la finalitat dels quals i especialitat és l'escorcollat dels serveis PHP per servir contingut amb una orientació a l'acompliment vinculada a serveis per a consum d'altres serveis que necessiten dades, tals com a I.A. on PHP està veient un acolliment amb un sentiment de confiança en els resultats per obtenir (sense pretendre servir de llenguatge en si mateix orientat a la I.A., atès que no va ser la seva conceptualització original). Encara que el màrqueting que està rebent aquest tipus de dominis, està relacionat amb les noves generacions de persones educades a les noves tecnologies[5] Com a part de la visió general, caldria incloure un últim aspecte, i és la capacitat de generar capes de seguretat autodependents, en un paradigma només emergent gràcies a les llibreries de les quals disposa PHP (en procés de desenvolupament).
El lloc web de laViquipèdia està desenvolupat en PHP.[6] És també el mòdulApache més popular entre els ordinadors que utilitzenApache com a servidor web.
La gran semblança que posseeix PHP amb els llenguatges més comuns deprogramació estructurada, comC iPerl, permeten a la majoria delsprogramadors crear aplicacions complexes amb unacorba d'aprenentatge molt curta. També els permet involucrar-se amb aplicacions de contingut dinàmic sense haver d'aprendre tot un nou grup de funcions.
Encara que tot en el seu disseny està orientat a facilitar la creació de llocs webs, és possible crear aplicacions amb unainterfície gràfica d'usuari, utilitzant alguna extensió com pot serPHP-Qt,PHP-GTK,[7] WxPHP, WinBinder, Roadsend PHP, Phalanger, Phc o Hip-hop VM. També pot ser usat des de lainterfícia de comandes, de la mateixa manera comPerl oPython poden fer-ho; a aquesta versió de PHP s'anomena PHP-CLI (Command Line Interface).[8]
Quan el client fa una petició al servidor perquè li enviï unapàgina web, el servidor executa l'intèrpret de PHP. Aquest processa l'script sol·licitat que generarà el contingut de manera dinàmica (per exemple obtenint informació d'una base de dades). El resultat és enviat per l'intèrpret al servidor, que al seu torn l'hi envia al client.
Mitjançant extensions és també possible la generació d'arxiusPDF,[9]Flaix, així com imatges en diferents formats.
PHP és una alternativa a les tecnologies deMicrosoftASP iASP.NET (que utilitzaC# iVisual Basic .NET com a llenguatges), aColdFusion de l'empresaAdobe, aJSP/Java,CGI/Perl i aNode.js/Javascript. Encara que la seva creació i desenvolupament es dona en l'àmbit dels sistemes lliures, sota la llicènciaGNU, existeix a més un entorn de desenvolupament integrat comercial anomenatZend Studio.CodeGear (la divisió de llenguatges de programació deBorland) ha tret al mercat un entorn de desenvolupament integrat per PHP, denominat 'Delphi for PHP'. També existeixen almenys un parell de mòduls perEclipse, un dels entorns més populars.[11]
Va sorgir als voltants del1994 com un conjunt de scripts escrits perRasmus Lerdof enPerl. El8 de juny de1995 Lerdorf va alliberar PHP per tal d'accelerar la localització d'errors i millorar-ne el codi.[12] Aquest versió es va anomenarPHP version 2, aquesta versió ja disposava de les funcionalitats bàsiques que PHP té actualment.
Dos programadors israelís del Technion, Zeev Suraski i Andi Gutmans, van reescriure l'analitzador sintàctic (parser en anglès) l'any 1997 i van crear la base del PHP3, canviant el nom del llenguatge a la forma actual. Immediatament van començar experimentacions públiques de PHP3 i va ser publicat oficialment el juny del 1998.
Per a 1999, Suraski i Gutmans van reescriure el codi de PHP, produint el que avui es coneix com a motor Zend. També van fundar Zend Technologies en Ramat Gan, Israel.
Al maig de 2000 PHP 4 va ser llançat sota el poder del motor Zend Engine 1.0. El dia 13 de juliol de 2007 es va anunciar la suspensió del suport i desenvolupament de la versió 4 de PHP, malgrat l'anunciat s'ha alliberat una nova versió amb millores de seguretat, la 4.4.8 publicada el 13 de gener del 2008 i posteriorment la versió 4.4.9 publicada el 7 d'agost de 2008. Segons aquesta notícia es donarà suport a fallades crítiques fins al 2008-08-09,...
El 13 de juliol de 2004, va ser llançat PHP 5, utilitzant el motor Zend Engine 2.0 (o Zend Engine 2). La versió més recent de PHP és la 5.3.3 (22 de juliol de 2010), que inclou tots els avantatges que proveeix el nou Zend Engine 2 com:
Millor suport per a la Programació Orientada a Objectes, que en versions anteriors era extremadament rudimentari.
Millores de rendiment.
Millor suport per MySQL amb extensió completament reescrita.
Encara se segueixen publicant versions de la branca 5.2.X, sent publicada la versió 5.2.14 el 22 de Julio de 2010, encara que la majoria són actualitzacions de seguretat
PHP està extremadament modularitzat. Amb el tipus de dades, la sintaxi i les funcions s'assembla molt al llenguatge de programacióC. Des de la versió 5, inclou un major suport a l'orientació a objectes, també s'assembla alC++.
PHP es pot incloure dins del codiHTML, indicant-ho a l'intèrpret mitjançant les etiquetes <? i ?> o <?php i ?>.Quan el llenguatge s'estigui interpretant, s'executarà el codi que està entre les etiquetes, generant un codi HTML com a sortida. El codi HTML generat pel codi PHP es barrejarà amb la pàgina HTML on hagués estat inclòs.
La gran semblança que té PHP amb els llenguatges més comuns de programació estructurada, com C i Perl, permeten a la majoria dels programadors crear aplicacions complexes amb una corba d'aprenentatge molt curta. També els permet involucrar-se amb aplicacions de contingut dinàmic sense haver d'aprendre tot un nou grup de funcions.
Principis bàsics per a la programació en PHP, el popular llenguatge del costat del servidor. Manual assequible per a no programadors que senti els fonaments bàsics d'aquest llenguatge. Continuació lògica del manual de pàgines dinàmiques.
Completament orientat al desenvolupament d'aplicacions web dinàmiques amb accés a informació emmagatzemada en una base de dades.
El codi font escrit en PHP és invisible al navegador i el client, ja que és el servidor el que s'encarrega d'executar el codi i enviar el seu resultat HTML al navegador. Això fa que la programació en PHP sigui segura i de confiança.
Capacitat de connexió amb la majoria dels motors de base de dades que s'utilitzen en l'actualitat, destaca la seva connectivitat ambMySQL iPostgreSQL.
Capacitat d'expandir el seu potencial utilitzant l'enorme quantitat de mòduls (anomenats ext's o extensions).
Té una àmplia documentació en la seva pàgina oficial (www.php.net), entre la qual es destaca que totes les funcions del sistema estan explicades i exemplificades en un únic fitxer d'ajuda.
Éslliure, pel que es presenta com una alternativa de fàcil accés per a tothom.
Biblioteca nativa de funcions summament àmplia i inclosa.
No requereix definició de tipus de variables encara que els seus variables es poden avaluar també pel tipus que estiguin fent servir en temps d'execució.
Té maneig d'excepcions (des de PHP5).
Si bé PHP no obliga a qui l'usa a seguir una determinada metodologia a l'hora de programar (molts altres llenguatges tampoc ho fan), tot i estar dirigit a alguna en particular, el programador pot aplicar en el seu treball qualsevol tècnica de programació i / o desenvolupament que li permeti escriure codi ordenat, estructurat i manejable. Un exemple d'això són els desenvolupaments que en PHP s'han fet delpatró de disseny «Model-Vista-Controlador» (o MVC), que permeten separar el tractament i accés a lesdades, lalògica de control i lainterfície d'usuari en tres components independents.
Una variable pot ser de qualsevol tipus, perquè en PHP no existeix la declaració de variables. Cada variable serà d'un tipus o un altre segons la informació que contingui en aquell moment. PHP treballa amb els següents tipus:
// Enters:$sencer=123;// Reals:$real=1.23;// Cadenes:$cadena="Hola";// Taules:$taula[0]=123;$taula[1]=1.23;$taula[2]="Hola";// Objectes: (vegeu apartat de classes amb PHP)