PHP
- Afrikaans
- Alemannisch
- Aragones
- l`rby@
- Asturianu
- Az@rbaycanca
- Boarisch
- Zemaiteska
- Belaruskaia (tarashkevitsa)
- Belaruskaia
- B'lgarski
- bhojpurii
- baaNlaa
- Brezhoneg
- Bosanski
- Catala
- Min Dong Yu / Ming-deng-ngu
- Nokhchiin
- Cebuano
- khwrdy
- Cestina
- Cymraeg
- Deutsch
- Ellenika
- English
- Esperanto
- Espanol
- Eesti
- Euskara
- frsy
- Suomi
- Voro
- Francais
- Gaeilge
- Galego
- gujraatii
- Ke Jia Yu / Hak-ka-ngi
- `bryt
- hindii
- Hrvatski
- Kreyol ayisyen
- Magyar
- Hayeren
- Interlingua
- Bahasa Indonesia
- Ido
- Islenska
- Italiano
- Ri Ben Yu
- Jawa
- k`art`uli
- Qaraqalpaqsha
- Taqbaylit
- K'azak'sha
- bhaasaakhmaer
- knndd
- hangugeo
- Kurdi
- Kyrgyzcha
- Latina
- Letzebuergesch
- Lingua Franca Nova
- Lombard
- Lietuviu
- Latviesu
- Madhura
- maithilii
- Malagasy
- Minangkabau
- Makedonski
- mlyaallN
- Mongol
- mraatthii
- Bahasa Melayu
- mnmaabhaasaa
- Plattduutsch
- nepaalii
- nepaal bhaassaa
- Nederlands
- Norsk nynorsk
- Norsk bokmal
- Occitan
- Polski
- Piemonteis
- pnjby
- Portugues
- Runa Simi
- rkhiung
- Romana
- Russkii
- sNskRtm
- Sakha tyla
- Srpskohrvatski / srpskokhrvatski
- siNhl
- Simple English
- Slovencina
- Slovenscina
- Shqip
- Srpski / srpski
- Svenska
- Kiswahili
- tmilll
- Toch'iki
- aithy
- Turkmence
- Tagalog
- Turkce
- Ukrayins'ka
- rdw
- O`zbekcha / uzbekcha
- Tieng Viet
- West-Vlams
- Winaray
- Wolof
- Wu Yu
- yyidySH
- Min Nan Yu / Ban-lam-gi
- Yue Yu
- Zhong Wen
- Der er for fa eller ingen kildehenvisninger i denne artikel, hvilket er et problem. Du kan hjaelpe ved at angive trovaerdige kilder til de pastande, som fremfores i artiklen.
| Original skaber(e) | Rasmus Lerdorf |
|---|---|
| Udvikler(e) | The PHP Development Team |
| Udgivet | 8. juni 1995 |
| Stabil version | 8.4.6 (10. april 2025) |
| Status | Aktiv |
| Skrevet i | C |
| Operativsystem | Unix-lignende, Windows |
| Platform | Platformsuafhaengigt |
| Licens | PHP License |
| Hjemmeside | php.net |
| Laes den relaterede bog Programmering:PHP pa Wikibooks. |
- For alternative betydninger, se PHP (flertydig). (Se ogsa artikler, som begynder med PHP)
PHP er et objekt-orienteret server-side programmeringssprog anvendt til udvikling af dynamiske webapplikationer og websteder. Sproget blev grundlagt af Rasmus Lerdorf og udgivet forste gang den 8. juni 1995. Projektet er open source, hvilket basalt set betyder, at alle har adgang til den underliggende kildekode, der er skrevet i programmeringssproget C. "PHP" er et rekursivt akronym for "PHP: Hypertext Preprocessor", men stod tidligere for "Personal Home Page Tools".
PHP er anvendt til at udvikle prominente services som Facebook, Wikipedia, Yahoo, WordPress, Drupal, m.fl. Det er det mest udbredte sprog til dynamiske weblosninger, fordi det har et stort faellesskab (community) i sit bagland. Det har gjort sproget interessant for nybegyndere savel som ovede. PHP ligger i direkte konkurrence med Microsofts .Net-framework, Ruby, Python og Perl.
Historie
[rediger | rediger kildetekst]PHP startede som et lille, simpelt CGI-script i Perl, der skulle bruges til at overvage trafikken pa Rasmus Lerdorfs personlige hjemmeside. Det var pa dette tidspunkt aldrig intentionen, at sproget skulle na ud over hans egen private server. Da Perl-scriptet var for langsomt til at lose sin opgave, blev den omskrevet til C.
Andre personer der brugte samme server opdagede Rasmus' CGI-wrapper, og spurgte om de kunne bruge den pa deres respektive projekter. Ikke lang tid gik der, for der opstod eftersporgsel pa mere funktionalitet. Som folge af eftersporgslen samlede Lerdorf en - efter eget udsagn halvfaerdig - distribution med dokumentation, mailing-liste og FAQ. Distributionen blev kaldt Personal Home Page Tools, men aendrede senere navn til Personal Home Page Construction Kit.
Umiddelbart efter fortsatte Rasmus arbejdet og skrev den grundlaeggende funktionalitet til at forbinde til, og arbejde med, en SQL-database. Dette vaerktoj blev kaldt Form Interpreter, eller blot FI.
PHP 3
[rediger | rediger kildetekst]I den senere om- og sammenskrivning blev det for forste gang muligt at indsaette sin dynamiske PHP-kode i HTML-kontekst, frem for i separate filer. PHP 3 var endnu en omskrivning der blev udformet i samarbejde med Andi Gutmans og Zeev Suraski.
De blev lavet som en komplet omskrivning af PHP/FI, da PHP/FI i folge udviklerne var underdimensioneret til at lave et eCommerce-program de arbejdede pa til et universitetsprojekt.
For at bygge pa PHP/FI's eksisterende brugerbase samarbejdede Andi og Zeev med Rasmus, og offentliggjorde PHP 3.0 som den officielle efterfolger til PHP/FI.
PHP 3.0 blev officielt udgivet i juni 1998, efter omkring 9 maneder i offentlig test.
PHP 4
[rediger | rediger kildetekst]I vinteren 1998 gik Andi og Zeev i gang med en omskrivning af PHP's kerne. Malet var at forbedre ydeevnen af komplekse applikationer. Den nye motor, dobt Zend Engine, opfyldte malene. PHP 4.0 blev baseret pa denne motor, og kombineret med en bred vifte af nye funktioner blev det udgivet i maj 2000.
PHP 5
[rediger | rediger kildetekst]PHP 5 blev udgivet i juli 2004 efter flere ars aktiv udvikling og test. Version 5 er drevet af kernen Zend Engine 2.0. I PHP 5 kom der oget fokus pa at forbedre OOP-delen, men der fulgte en lang raekke rettelser og tilfojelser, samt konventionelle modificeringer.
En anden markant aendring var automatisk hensyn til tidszoner, nar man anvendte f.eks. date- og strtotime-funktionerne. Fra og med PHP 5 vil parametre og resultater til/fra disse funktioner vaere pavirket af serverens tidszone. Det betyder, at UNIX-tidspunktet "0" der i GMT tilsvarer 1. januar 1970 kl. 00:00, pa danske servere automatisk blev konverteret til kl. 01:00. Pa trods af denne implementering af mange blev anset som en effektivisering, opstod der mange problemer under migreringen fra PHP 4 til 5, ganske enkelt fordi mange udviklere ikke var opmaerksomme pa denne aendring. Altsa, ville den kode de var skrevet med manuelt hensyn til tidszoner, pludselig vaere automatisk, og i langt storstedelen af tilfaeldene derfor returnere ukorrekte resultater.
I PHP 5.1 blev der tilfojet understottelse af PDO (PHP Data Object), der er et objekt-orienteret, mere sikkert og mere fleksibelt alternativ til den traditionelle MySQL-implementering. Det er ydermere annonceret at grundlaeggende MySQL API vil blive fjernet fra PHP. Det vil dog ske ved en langsom udfasning, da man er velvidende omkring, at det stadig er det mest anvendte API til databaseadgang. Udviklere skal derfor begynde at anvende eksempelvis PDO, MySQLi eller tilsvarende alternativer.
I PHP5.3 blev tilfojet muligheden for at lave anonyme funktioner.
PHP 5.4
[rediger | rediger kildetekst]PHP 5.4 blev resultatet af det der skulle have vaeret PHP 6. En af de kritiske aendringer i PHP version 5.4 har vaeret beskyttelse mod en hacking-metode kaldt hash inject, hvor data sendt til serveren, er sammensat pa en sadan made, at det vil skabe enorme maengder ekstra beregninger pa serveren, nar dataene skal sorteres.
Der er ogsa tilfojet et ny typehinting, callable. Det betyder, at man kan patvinge at det parameter der videregives til en funktion kan kaldes - dvs. det typisk er en funktion.
PHP-teamet har ogsa indfort en ny notation for arrays, pa formen [1, 2, 3, ...]. Samtidig er det blevet muligt, at ga direkte til en nogle i et array returneret af en funktion. Eksempler pa begge dele demonstreres her:
return ['Vaerdi et', 'Vaerdi to'];
}
echo test()[0]; // Vaerdi et
Den sakaldte "error supression", @-tegnet, man kan saette foran funktioner for at de ikke skal udskrive fejlbeskeder, er blevet forbedret i sin hastighed. Oprindeligt var der tale om at udfase denne konstruktion.
Der kom ogsa understottelse af traits i OOP.
PHP er ogsa blevet udstyret med en indbygget webserver. Denne er dog ikke beregnet til offentligt brug, men udelukkende til at teste sin kildekode.
Den omstridte og berygtede safe mode er blevet fjernet fuldkomment fra PHP, hvilket blev varslet flere ar for annonceringen. I samme ombaering er register_globals og register_long_arrays ogsa fjernet. register_globals har i mange ar vaeret til stor bekymring for sikkerheden i PHP-applikationer, da funktionen gor det nemt for uvedkommende at sende variabler med potentielt farligt indhold ind og blande sig i koden. Nar register_globals var slaet fra, eller som nu fjernet, skal programmoren selv importere udefrakommende variabler, og har derfor bedre kontrol med hvilke der kommer ind, og hvorledes de bliver valideret.
PHP 7
[rediger | rediger kildetekst]I 2014 og 2015 blev der udviklet en ny stor PHP-version, som blev nummereret PHP 7. Nummereringen af denne version involverede en del debat.[1] Mens PHP 6 Unicode-eksperimentet aldrig var blevet frigivet, henviste flere artikler og bogtitler til PHP 6-navnet, hvilket kunne have forarsaget forvirring, hvis en ny version skulle genbruge navnet.[2] Efter en afstemning blev navnet PHP 7 valgt.[3]
PHP 7 introducerede ogsa nye sprogfunktioner, herunder returnertypeerklaeringer til funktioner,[4] som supplerer de eksisterende parametertypeerklaeringer og understotter de skalaere typer (integer, float, string, and boolean) i parameter og retur type erklaeringer.[5]
Overblik
[rediger | rediger kildetekst]PHP benyttes til at skabe dynamisk indhold, herunder webshops, fora, CMS-systemer, intranets, databasebehandling, osv. Da det er et sakaldt general-purpose sprog er det ikke begraenset til at lose en bestemt slags opgaver, og udvikleren er derfor givet kreativ frihed, dels til at definere sin opgave, og dels til fremgangsmaden hvorpa denne skal loses. Disse to parametre gor sig ikke gaeldende for alle programmeringssprog.
Server
[rediger | rediger kildetekst]PHP afvikles pa webserver-software som eksempelvis Apache eller IIS. Almindeligvis nar en besogende ankommer til en hjemmeside, foresporges der pa en side, og denne returneres af serveren. Her vil der pa statiske weblosninger vaere tale om HTML og CSS. Nar besogende ankommer til en PHP-baseret server, vil en fortolker vaere til stede i processen mellem at en besogende eftersporger pa en side, og modtager den efterspurgte side. Pa dette ekstra trin i processen vil PHP-koden blive fortolket og behandlet, og saledes returnere et dynamisk resultat.
PHP har tre prae-installerede API'er til arbejde med databaser.
Filendelse
[rediger | rediger kildetekst]Som endelse pa filnavne for PHP-filer benyttes ofte .php, .php3, .php4, .php5 eller .phtml. Tallene der star i forlaengelse af .php kan bruges af webserveren til at identificere, hvilken version af php-fortolkeren der skal bruges. Til fremvisning af selve PHP-filerne med syntaksfremhaevning kan endelsen .phps pa filnavnet benyttes.
Afgraensning
[rediger | rediger kildetekst]For at fortaelle webserveren at der er tale om PHP koden, skal man afgraense koden med nogle tags. Hvis man ikke gor det vil koden bare blive fortolket som almindelig tekst/HTML. Et PHP script starter altid med ?>, dog kan det ogsa behandles ved brug af et HTML tag;