PHP

Fra Wikipedia, den frie encyklopædi

Gå til: navigation, søg
Læs den relaterede bog
Programmering:PHPWikibooks.
For alternative betydninger, se PHP (flertydig). (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. Det kan defineres som et programmeringssprog, hvis det bruges i forbindelse med GTK+. 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 2005 fyldte PHP 10 å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] Eksempler på PHP-kode

Det klassiske Hello, World!-eksempel:

<?php
  echo "Hej verden!";
?>

Eksempel på kommentarer og variabler

<?php
  // Dette er en kommentar.
  /* 
     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 simplere 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 />";
  }
?>

[redigér] Performance

Normalt anses PHP som værende et hurtigt programmeringssprog, men programmørens forståelse for funktionerne og algoritmer er ligeså vigtig for, at koden yder højeste performance. I simple eksempler måles performance med PHPs indbyggede microtime()-funktion, der giver det aktuelle tidsstempel i mikrosekunder. PHP har mange funktioner der basalt set gør de samme ting, men ikke nødvendigvis på samme måde, hvorfor de er forskellige i deres eksekveringstid. 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 sammenligningsoperatorne == og ===. Sidstnævnte er hurtigere, men giver kun det ønskede resultat hvis de to datatyper er identiske.

Normalt er der tale om foskelle på nano- og mikrosekunders - I disse tilfælde er performance 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 performance er nødvendig. Dette inkluderer især hvilke løkker der benyttes, hvordan de benyttes og antal af kald til databasen.

[redigér] Sikkerhed

En 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

Personlige værktøjer