PHP
| PHP | |
|---|---|
| Skaber | Rasmus Lerdorf |
| Udvikler | The PHP Group |
| Udgivet | 1995 |
| Nyeste udgivelse | 5.3.8 (23. august 2011) |
| Ustabil udgivelse | 5.4.0beta1 (15. september 2011) |
| Status | Aktiv |
| Platform | Platformsuafhængigt |
| Licens | PHP License |
| Programmeringssprog | C |
| Hjemmeside | php.net |
For alternative betydninger, se PHP (flertydig). (Se også artikler, som begynder med PHP)
PHP (i begyndelsen en forkortelse for "Personal Home Page Tools", men nu et rekursivt akronym for "PHP: Hypertext Preprocessor") er et open source-scripting-sprog, der bl.a. bruges til webapplikationer og på webservere til at generere dynamisk indhold og tilsvarende funktioner. PHP blev oprindelig udviklet af dansk-grønlænder Rasmus Lerdorf. PHP blev udgivet den 8. juni 1995.
Indholdsfortegnelse |
[redigér] Overblik
[redigér] Filendelse
Som endelse på filnavne for PHP-filer benyttes ofte .php, .php3, .php4, .php5 eller .phtml. Tallene der står i forlængelse af .php kan bruges af webserveren til at identificere, hvilken version af php-fortolkeren der skal bruges. Til fremvisning af selve PHP-filerne med syntaksfremhævning kan endelsen .phps på filnavnet benyttes.
[redigér] Afgrænsning
For at fortælle webserveren at der er tale om PHP koden, skal man afgrænse koden med nogle tags. Hvis man ikke gør det vil koden bare blive fortolket som almindelig tekst/HTML. Et PHP script starter altid med <?php eller <? og slutter med ?>, dog kan det også behandles ved brug af et HTML tag; <script language="php">. Der bruges dog også <?= ?> til et direkte print i html kode. Det ses ligeledes sjældent, at PHP åbnes med ASP tags som <% og %> og <%= %> til direkte print. Det er gyldig, hvis "asp_tags" er slået til i PHP konfigurationen - men dog yderst sjældent man ser det i praksis. Af hensyn bagudkompatibilitet bruges den såkaldte "shorthand" (<?=?>) kun sjældent i systemer der skal distribueres til forskellige servere. I PHP 6 er muligheden for brug af ASP tags blevet fjernet.
[redigér] PHP i webmiljøer
Når en browser forespørger om en PHP-side, så fortolkes koden først af webserveren vha. et plug-in-program, der enten oversættes sammen med webserveren (oftest Apache under GNU/Linux og Unix - se LAMP) eller som et CGI/ISAPI-program (oftest Internet Information Server eller Apache under Windows), der så genererer websiden, inden den bliver sendt af sted tilbage til browseren, som fortolker HTML-koden og viser hjemmesiden.
[redigér] Anvendelse
PHP benyttes blandt andet af til generering af Wikipedias websider, hvor den samlede PHP-løsning hedder MediaWiki.
PHP kan også bruges til andre formål end blot dynamiske websider, blandt andet kan shell scripts og programmer med grafisk brugerflade (gennem GTK+) også kodes med dette sprog.
PHP kan ses som et open source-alternativ til Microsofts Active Server Pages (ASP) og til CGI/Perl.
Fortolkeren til PHP er for det meste Zends Zend Engine, der er skrevet i C, og er blevet brugt i PHP siden PHP3 blev udgivet. PHP5, som blev udgivet d. 13. juli 2004, bruger Zend Engine II.
Den 8. juni 2010 fyldte PHP 15 år.
Til PHP findes der et udvidelsessæt af komponenter og hyppigt benyttede kodestykker - PEAR (PHP Extension and Application Repository) - meget i stil med CPAN til Perl.
[redigér] Versioner
[redigér] PHP/FI
Personal Home Page / Forms Interpreter (PHP/FI) var den første version af PHP. Det blev udviklet af Rasmus Lerdorf i 1995. I starten var det et simpelt sæt af Perl-kommandoer til at spore adgangen til hans online-CV.
Efterhånden som mere funktionalitet var nødvendigt lavede han en stor C-implementering, som gjorde det muligt at kommunikere med databaser og lave simple web-applikationer.
Rasmus Lerdorf valgte at offentliggøre kildekoden til PHP/FI, så alle kunne se og bruge den.
[redigér] PHP 3
PHP 3.0 blev udviklet af Andi Gutmans og Zeev Suraski i 1997. Det er den første version af PHP, der minder meget om PHP, som vi kender det i dag.
De blev lavet som en komplet omskrivning af PHP/FI, da PHP/FI i følge udviklerne var underdimensioneret til at lave et eCommerce-program de arbejdede på til et universitetsprojekt.
For at bygge på PHP/FI's eksisternede brugerbase samarbejdede Andi og Zeev med Rasmus, og offentliggjorde PHP 3.0 som den officielle efterfølger til PHP/FI.
PHP 3.0 blev officielt udgivet i juni 1998, efter omkring 9 måneder i offentlig test.
[redigér] PHP 4
I vinteren 1998 gik Andi Gutmans og Zeev Suraski i gang med en omskrivning af PHP's kerne.
Målet var at forbedre ydeevnen af komplekse applikationer.
Den nye motor, døbt Zend Engine, opfyldte målene. PHP 4.0 blev baseret på denne motor, og kombineret med en bred vifte af nye funktioner blev det udgivet i maj 2000.
[redigér] PHP 5
PHP 5 blev udgivet i juli 2004 efter lang tids udvikling. Det er primært drevet af kernen Zend Engine 2.0 med masser af nye funktioner.
[redigér] Eksempler på PHP-kode
Det klassiske Hello, World!-eksempel:
<?php echo "Hej verden!"; ?>
Eksempel på kommentarer og variabler
<?php // Dette er en kommentar. # Kommentarer kan også angives med #, dette ses dog ikke ofte /* Dette er en kommentar der kan gå over flere linjer */ // Her gemmes et tal (Integer) i en variabel $variabel = 2; // Her gemmes en tekst (streng) i en variabel $variabel2 = "Denne tekst gemmes i variablen"; // Her udskrives tekst og tal til skærmen med en / imellem echo $variabel." / ".$variabel2; ?>
Eksempel på if/else
<?php // if - else if ($variabel < 10) { echo "Variablen er mindre end 10"; } else { echo "Variablen er større end 10"; } ?>
Eksempel på løkker
<?php // While løkke /* While løkker bruges ofte i forbindelse med databaser med f.eks. while($data = mysql_fetch_array(mysql_query("SELECT * FROM tabel"))) { } */ // Herunder er givet et simpelt eksempel while ($variabel < 10) { echo $variabel; } // For løkke // Udskriver 0 til 20 med linjeskift imellem for($i = 0; $i < 21; $i++) { echo $i."<br />"; } // Do-while løkke // Udskriver 0 til 20 med linjeskift imellem $i = 0; // $i skal defineres inden løkken do { echo $i.'<br />'; $i++; // Læg én til $i } while($i < 21); ?>
[redigér] Ydelse
Normalt anses PHP som værende et hurtigt programmeringssprog, men programmørens forståelse for funktionerne og algoritmer er lige så vigtig for, at koden giver den højest mulige ydelse. I enkle eksempler måles ydelse med PHPs indbyggede microtime()-funktion, der giver det aktuelle tidsstempel i mikrosekunder. PHP har mange funktioner, der i grunden gør de samme ting, men ikke nødvendigvis på samme måde, hvorfor de er forskellige i deres afviklingstid. Afhængigt af situationen er udskrivefunktionen "echo" nogle gange hurtigere end den tilsvarende "print." Men i særlige tilfælde vil print-funktionen være hurtigere. Et andet eksempel er sammenligningsoperatorerne == og ===. Sidstnævnte er hurtigere, men giver kun det ønskede resultat hvis de to datatyper er identiske.
Normalt er der tale om forskelle på nano- og mikrosekunder. I disse tilfælde er ydelsen i højere grad et kvalitetsstempel end en praktisk nødvendighed. Der findes dog undtagelser i særligt komplekse, omfattende eller meget anvendte systemer, hvor god forståelse for ydelse er nødvendig. Dette omfatter især, hvilke løkker der benyttes, hvordan de benyttes og antal af kald til databasen.
[redigér] Sikkerhed
Et af de mest alment kendte sikkerhedsproblemer i PHP er globale variabler og tilsvarende muligheden for SQL-injections. I nogle PHP-versioner er de såkaldte magic_quotes slået til, men de har gennem tiden skabt nye problemer, og i de nyeste versioner er de ikke længere en standard.
Safe mode er lavet for at komme et sikkerhedsproblem til livs på delte servere. Det er lavet som et PHP script der går ind og sætter begrænsninger for hvad der er tilladt. En af de største begrænsninger er, at filbehandlingsmuligheder er stærkt begrænsede, og mange open source systemer vil derfor ikke virke. På mange danske webhoteller er der ikke mulighed for at slå safe mode fra på domænet, hvilket giver store problemer. Safe mode er da også fjernet i PHP 6.
[redigér] Eksterne henvisninger