Benutzer-Werkzeuge

Webseiten-Werkzeuge


php

Allgemein

  • PHP = PHP Hyper Text Präprozessor
  • Füllt Websites mti dynamischen Informationen
  • Läuft Serverseitig
  • Syntaktisch Mischung aus C++ und Bash

Grundgerüst

  • PHP darf nur in Dokumenten vorkommen mit der Endung .php (es sei denn es ist auf dem Webserver eingestellt, dass auch andere Dokumente durch PHP ausgewertet werden)
  • PHP kann ganze Dokumente umfassen oder nur Abschnitte von Dokumenten
  • PHP kann in html eingebettet werden (die Datei muss dann aber .php heißen)

Ein PHP-Bereich befindet sich immer in folgendem Code:

<?php
        PHP-Code
?>

Alternativ funktioniert meist auch folgendes (sollte man aber nicht nutzen da es nicht überall funktioniert):

<?
    PHP-Code
?>

Der vorstehende Code kann dabei ein gesamtes Dokument umfassen (<?php steht am Beginn des Dokuments und ?> am Ende) oder nur irgendwo in einem html-Dokument (mit Endung .php) auftauchen.

Beispiel für mitten im HML-Code:

<html>
<head>
      <title> Bla </title>
</head>
<body>
      <h1>Ein PHP-Beispiel</h1>
      <?php
            echo "Dies ist das PHP-BEispiel";
      ?>
      <b>Hier ist das Beispiel zu Ende</b>
</body>
</html>

Variablen

  • Müssen nicht deklariert werden
  • Können überall im Programmcode definiert werden

Skalare

  • Können beliebige Werte aufnehmen (sowohl Zahlen, als auch Strings)


Syntax: $Variablenbezeichner=Wert;

Variablenbezeichner: Name der Variablen
Wert: Wert der der Variablen zugewiesen wird

Zugriff erfolgt ebenfalls per $Bezeichner.

Arrays

  • Können mehrere Skalare aufnehmen
  • Ansprache erfolgt über einen Index
  • Werden wie normale Variablen behandelt

Zuweisung:
Syntax: $Bezeichner=array(Wert1,Wert2,Wert3);
Beispiel: $Namen=array(„Susi“,„Peter“,„Dieter“);

Bezeichner: Name des Array
Wertx: Werte die dem Array zugewiesen werden sollen


Zugriff:
Syntax: $Bezeichner[Index];
Beispiel: $a=Name[$index];

Hashmap/Assoziative Arrays

  • Arrays bei denen der Index ein Wort ist

Defintion:
Syntax: $Bezeichner=array(Schlüssel1Wert1, Schlüssel2Wert2);
Beispiel: $Namen=array('Sorglos' ⇒ 'Susie', 'Mise' ⇒ 'Peter');

Multidimensionale Arrays/ Hashmaps

  • Arrays deren einzelne Felder wiederum auf Arrays verweisen
  • praktisch Arrays bei denen der Wert von mehreren Indexen abhängt
  • wenn man für einen Basis-Index mehrere Werte speichern will
    • Basis-Index (index 1) Name und Unterindexe


Deklaration und Definition

Syntax: Bezeichner= array Index1 ⇒ array(Wert1-1,Wert1-2), Index2 ⇒ array (Wert2-1,Wert2-2) oder
Bezeichner= array Index1 ⇒ array(Index1-1Wert1-1,Index1-2Wert1-2), Index2 ⇒ array (Index2-1Wert2-1,Index2-2Wert2-2)

Beispiel: $mymulti=array „Jane“ ⇒ array ('30.06.2011', 'Herlinger') oder
$multi=array „Test1“ ⇒ array ('Geburtsdatum' ⇒ '30.06.2011', 'Name' ⇒ 'Herlinger');



Zugriff/Wertzuweisung

Syntax: $Bezeichner[Index1][Index2]; bzw. $Bezeichner[Index1][Index2]=„Wert“;

  • Bezeichner: Name des Arrays
  • Index1: Numerischer oder sprechender Index des Feldes auf das zugegriffen werden soll
  • Index2: Numerischer oder sprechender Index des Feldes auf das zugegriffen werden soll
  • Wert: Wert der zugewiesen werden soll

Funktionen

Name Beschreibung
strlen()Ermittelt die Länge eines Strings

Syntax: strlen(String bzw. Variable)
strpos()Ermittelt die Position eines gesuchten Strings innerhalb eines anderen.

Gibt die numerische Position des Substrings zurück.

Achtung: Die Rückgabe kann den boolschen Typ false enthalten wenn der String nicht enthalten ist. Deswegen sollte vor dem weiterverarbeiten per Prüfung auf „=== false“ geprüft werden (=== prüft ob die Variable vom Typ Bool ist und danach ob der dort enthaltene Wert false ist)

Konstrukte

Kommentare

/*Kommentar */

if-else

  • Verzweigung
  • Trifft ein Zweig zu, werden die danach folgenden nicht mehr abgearbeitet (auch wenn sie matchen würden)



Syntax:

if (Bedingung)
{
  Anweisung;
}
elseif (Bedingung)
{
   Anweisung;
}
else
{
   Anweisung;
}



  • elseif ist eine optionaler zusätzlicher bedingter Anweisungsblock
    • wird nur ausgeführt wenn die davor liegenden if oder elseif-Statements nicht zutreffend waren
  • else wird Bedingungslos durchlaufen wenn die davor liegenden if oder elseif-Blöcke nicht ausgeführt wurden

switch

  • Auswahl-Anweisung
    • der Inhalt einer Variablen wird gegen einen Satz möglicher Werte geprüft → stimmt der Wert in der Variablen und der Auswahl-Wert überein wird der Anweisungsblock ausgeführt
  • ähnlich mehreren elseif-Anweisungen
  • wenn im Block kein break angegeben wird, werden auch alle nachfolgenden Wert-Angaben auf zutreffen geprüft und gegebenenfalls weitere Blöcke ausgeführt



Syntax:

switch (//Variable//) 
{
      case //Auswahl1//: 
                       //Code1//;
                       break;
      case //Auswahl2//: 
                       //Code2//;
                       break;                  
     default:
                       //Code3//;
                       break;
}


  • Auswahl:

while

  • Schleife
  • Wird ausgeführt solange die Bedingung wahr ist
  • wird nur ausgeführt wenn die Bedingung zumindest vor dem ersten Durchlauf „wahr“ ist

Syntax:

while(Bedingung)
{
       Code;
}
  • Bedingung: Bedingung ist die Bedingung die gegeben sein muss damit die Schleife (weiter) ausgeführt wird



Beispiel:

while($a < 6 )
{
     print $a;
     a++;
}

do-while

  • Schleife
  • Wird ausgeführt solange die Bedingung „wahr“ ist
  • Fußgesteuert
    • Bedingung steht im Fuß (am Ende des zu wiederholenden Codes)
    • wird mindestens einmal durchlaufen (auch wenn die Bedingung von Anfang an nicht gegeben war)


Syntax:

do
{
      Code;
}
while(Bedingung);
  • Bedingung: Bedingung die bestimmt ob die Schleife wiederholt ausgeführt wird (wenn die Bedingung „wahr“ ist)



Syntax:

do
{
      print $a;
      a++;
}
while($a < 6);

for-Loop

  • Schleife die eine bestimmte Anzahl von Durchläufen durchlaufen werden soll

Syntax:

for (Initialisierung;Bedingung;Inkrementation)
{
      Code;
}


  • Initalisierung: Deklarierung und Definierung und Initalisierung der Zählervariable. Es kann statt dessen aber auch beliebiger anderer Code ausgeführt werden.
  • Bedingung: Bedingung die gegeben sein muss damit die Schleife (weiter)ausgeführt wird. Ist die Bedingung nicht (mehr) erfüllt wir die Schleife nicht mehr weiter ausgeführt bzw. wenn die Bedingung schon am Anfang nicht gegeben ist, wir die Schleife gar nicht ausgeführt.
  • Inkrementation: Veränderung der Zählerveriable - in der Regel inkrementieren oder dekrementieren. Kann aber beliebigen Code enthalten.


Beispiel:

for (a=0;a<=5;a++)
{
     echo "a ist jetzt $a";
}


Das obige Beispiel führt die Schleife 6 mal aus und gibt hintereinander 0,1,2,3,4,5 aus.

foreach-Loop

  • wird durchlaufen für alle Elemente einer Hashmap oder eines Arrays
  • Variable nimmt immer aktuelles Element für den derzeitigen Durchlauf auf

Syntax:

foreach ($Array as $Wert)
{
      Code;
}


Beispiel:

$myhash=array ("Peter" => "Müller","Edith" => "Schröder");

foreach ($myhash as $value)
{
      echo "$value";
}

Funktionen

Syntax:

function Funktionsname (Parametervariable1, Parametervariable2)
{
     Code;
     return Rückgabewert;
}

Rückgabevariable=Funtionsname(Parameter1, Parameter2);
  • Parametervariable: Variablen die an die Funktion übergebene Werte aufnehmen und innerhalb der Funktion zur Verfügung stellen
    • Übergabe erfolgt als Parameterx
  • Rückgabewert: Wert der an den Aufrufer zurückgegeben wird
    • In Syntaxrklärung wird der Wert in Rückgabevariable gespeichert


Beispiel:

$eins=5;
$zwei=3;

function addition ($zahleins,$zahlzwei)
{
      $result=$zahlein+$zahlzwei;
      return $result;
}

echo "Das Ergebnis von $eins + $zwei ist " . addition($eins,$zwei);

Operatoren

Name Beschreibung
String-VerknüpfungString1.String2
Decrement
++Increment
+=Zuweisung und Addition

Wert vor dem = wird mit dem Wert hinter = addiert und in der Variable vor = gespeichert.

a+=2 → a=a+2;
-=ZUweisung und Substraktion

Siehe +=
*=Zuweisung und Multiplikation

Siehe +=
/=Zuweisung und Division

Siehe +=
.=Zuweisung und Verkettung

String vor dem = und hinter dem = werden verkettet und der Variable vor = zugewiesen
==Vergleichsoperator
!=Ungleich
<>Ungleich
>Größer als
<Kleiner als
>=Größer als oder gleich
Kleiner als oder gleich
&&Und
|
Oder
!Not
Negiert den Ausdruck
===Prüfung ob der Typ der Variablen identisch ist und wenn ja, den entsprechenden Wert enthält.

Ist der Typ nicht identisch oder der Wert nicht gleich wird false zurückgegeben.


Troubleshooting

Problem Mögliche Lösungen
unexpected T_VARIABLE
  • Variable wird ausgelesen, aber vorher nicht gesetzt
  • Der PHP-Bereich wird durch <? php eingeleitet → muss <?php (ohne Leerzeichen) sein

Konfiguration

  • /etc/php5/apache2/php.ini (unter Linux mit installiertem Apache2)
  • Konfiguration kann zentral für einzelne Verzeichnisse/URLs angepasst werden
  • Konfiguration kann im jeweiligen Verzeichnis angepasst werden

Die Php-ini kann zentral (in der /etc/php5/apache2/php.ini) konfiguriert werden.
In dieser Datei können für einzelne Verzeichnisse oder URLs Parameter definiert werden → in dem per [PATH=Verzeichnispfad] bzw. [HOST=Domainname] Untersektionen definiert werden (diese haben keinen Abschluss, sondern Enden wo eine neue Sektion beginnt oder die Datei zu Ende ist). Hinweis: Dies funktioniert derzeit nur mit CGI/FastCGI.
In Unterverzeichnissen kann eine .user.ini (Dateiname hängt vom Parameter user_ini.filename ab und auch ob diese Funktion nutzbar ist) die Parameter überschreiben.

Externe Informationen

php.txt · Zuletzt geändert: 2014/09/07 18:23 (Externe Bearbeitung)