PHP Tutorial

Zuletzt aktualisiert am 25. Dezember 2023 von Lars

Diese kleine Tutorial zu PHPist primär für mich als Gedankenstütze entstanden. Eventuell hilft es auch Einsteiger mit Kenntnissen einer anderen Programmiersprache. Gute HTML-Kenntnisse sind zum Verständnis nötig.

Was ist PHP?

PHP ist eine Skriptsprache, mit der grosse Projekte realisiert werden können. Der PHP-Interpreter läuft hier auf dem Webserver und liefert als Output reguläres HTML. PHP wird also serverseitig ausgeführt wird. Der Webserver muss dazu PHP unterstützen. Er führt den Code aus und schickt das Ergebnis an den Browser.

PHP-Anweisungen kann man direkt mit HTML kombinieren. Allerdings muss die Dateiendung php sein, sonst werden die Befehle nicht ausgeführt.

Der Webserver muss wissen, wo der PHP-Code beginnt. In der Datei selber kann sowohl PHP-Code als auch normales HTML stehen. Damit der Interpreter weiss, wo er PHP-Code findet, ist dieser in <?php ?> einzuschliessen. Jede PHP-Anweisung endet mit einem Semikolon.

Die Programmiersprache wurde 1995 von Rasmus Lerdorf erfunden.

<?php 
  ...
  PHP-Code
  ...
?>

Das erste kleine Programm...

<html>
<head>
<title>PHP-Info</title>
</head>
<body>
<h1>Infos zu PHP</h1>
<?php
phpinfo();
?>
</body>
</html>

...gibt die php-Informationen aus. Darin enthalten sind die Grundeinstellungen für den PHP-Interpreter.

Um die Datei ausführen zu können, wird ein Webserver mit PHP-Unterstützung gebraucht. Dies kann eine Webpräsenz mit PHP-Unterstützung sein, oder ein lokaler Server. Gut geeignet für lokale Tests ist das Programm-Paket Xampp, was eine einfach zu installierende komplette Umgebung liefert. Eine Anleitung zu Xampp würde aber den Rahmen dieses Tutorials sprengen.

Probieren Sie mal das folgende Programm aus:

<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  
  echo "<h1>Ich lerne PHP</h1>n"; 
  echo "<p>Wow, tatsächlich werde ich jetzt bald PHP können!</p>n";  
?> 
</body> 
</html>

Schauen Sie sich bitte auch den HTML-Quelltext der Seite an. Dort ist von PHP nichts mehr zu sehen, sondern nur noch die mit echo ausgegebenen HTML-Tags.

Escape-Sequenzen / Ersatzdarstellungen

Aber was bedeutet n?

n ist eine Escape-Sequenz und erzeugt einen Zeilenumbruch. Escape-Sequenzen werden immer durch einen Backslash eingeleitet. Sie haben aber nur Auswirkungen im HTML-Quelltext. Bei der Ausgabe interessiert sich ein Browser für solche Zeilenumbrüche nicht, der geht nach wie vor nur über HTML-Tags.

Weitere Escape-Sequenzen sind z.B.

\
Backslash
t
Tabulator
r
Wagenrücklauf

Variablen in PHP

Wir passen das Programm jetzt etwas an.

<?php 
  $header = "Ich lerne PHP"; 
  $text = "Wow, tatsächlich werde ich jetzt bald PHP können!"; 
?> 
<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  
  echo "<h1>$header</h1>n"; 
  echo "<p>$text</p>n";  
?> 
</body> 
</html>
  • Variablen müssen in PHP nicht deklariert werden
  • Der Typ wird automatisch erkannt
  • Intern wird mit String, Integer, Float und Boolean gearbeitet
  • Alle Variablen beginnen mit einem $-Zeichen
  • Beim Variablennamen wird zwischen Gross- und Kleinschreibung unterschieden

Arrays in PHP

Arrays sind Felder mit mehreren Variablen. Zum besseren Verständnis hier das weiter umgebaute Beispiel:

<?php 
  $text = array(); 
  $text[0] = "Ich lerne PHP"; 
  $text[1] = "Wow, tatsächlich werde ich jetzt bald PHP können!"; 
?> 
<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  
  echo "<h1>$text[0]</h1>n"; 
  echo "<p>$text[1]</p>n";  
?> 
</body> 
</html>

Arrays werden also durch...

$variable = array();

...initialisiert.

Alternativ hätte man auch die Initalisierung samt Wertebelegung in eine Zeile packen können.

$text = array("Ich lerne PHP", "Wow, tatsächlich werde ich jetzt bald PHP können!");

Solche langen Zeilen werden jedoch schnell unübersichtlich, daher sollte man eher Abstand davon nehmen.

Assoziative Arrays

Es kann nervig sein, sich immer die numerischen Indizes merken zu müssen. Um das ganze eingängiger zu machen, gibt es auch assoziative Arrays. Bei denen werden die Elemente über geeignete Text-Werte angesprochen. Hier ein Beispiel:

<?php 
  $tag = array( 
  "so" => "Sonntag", 
  "mo" => "Montag", 
  "di" => "Dienstag", 
  "mi" => "Mittwoch", 
  "do" => "Donnerstag", 
  "fr" => "Freitag", 
  "sa" => "Samstag"); 
?> 
<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  
  echo "<h1>Wochentage</h1>n"; 
  echo "<p>mo steht für $tag[mo] und do steht für $tag[do] </p>n";  
?> 
</body> 
</html>

Im obigen Beispiel wurde die Belegung eigentlich in einer Zeile gemacht, die sich einfach über mehrere Textzeilen erstrechkt (Klammer und Setzung von Semikolon beachten).

Schleifen

Gerade im Zusammenhang mit Arrays sind Schleifen sehr interessant um Codezeilen zu sparen.

foreach-Schleife

Fangen wir - zugegebenermassen didaktisch wenig sinnvoll - mit einem der schwereren Schleifen-Konstrukten an, der foreach-Schleife. Mit der foreach-Schleife lassen sich in assoziativen Arrays recht einfach Indizes und Werte ansprechen. Als Anfänger kommt man mit den Zusammenhängen oft lange nicht klar, daher hier einmal in einem Beispiel entsprechend graphisch hervorgehoben.

PHP-Tutorial - foreach-Schleife

Auch die Indizes lassen sich mit ausgeben.

PHP-Tutorial - foreach-Schleife

Hier noch zwei Beispiele:

<!DOCTYPE html> 
	<html> 
	 <head>
	  <title>foreach</title>
	  <meta charset='utf-8' />
	  </head>
	 <body>
	 <h1>Ich gebe die Tage aus</h1>
	 
<?php
	
	$tag[1] = "Montag";
	$tag[2] = "Dienstag";
	$tag[3] = "Mittwoch";
	$tag[4] = "Donnerstag";
	$tag[5] = "Freitag";
	$tag[6] = "Samstag";
	$tag[7] = "Sonntag";
	foreach ($tag as $value) 
	{
		echo '$value<br>';
	}
?>

	 </body>
	</html>

Noch einmal foreach. Auch hier kommt ein assoziatives Array zum Einsatz. Statt numerischen Indizes werden hier die Kurzzeichen der Kantone verwendet.

<!DOCTYPE html> 
	<html> 
	 <head>
	  <title>foreach</title>
	  <meta charset="utf-8" />
	  </head>
	 <body>
	 <h1>Ich gebe einige Kantone mit Ihren Kurzzeichen aus</h1>
	 
<?php
	
	$kanton['AG'] = "Aargau";
	$kanton['BL'] = "Basel-Land";
	$kanton['BS'] = "Basel-Stadt";
	$kanton['BE'] = "Bern";
	$kanton['JU'] = "Jura";
	$kanton['OW'] = "Obwalden";
	$kanton['SG'] = "St. Gallen";
	$kanton['ZH'] = "Zürich";
	
	foreach ($kanton as $key => $value) 
	{
		echo "$key : $value<br>";
	}
?>

	 </body>
	</html>

for-Schleife

Die for-Schleife schauen wir uns am Besten anhand des folgenden Beispiels an.

<?php 
  $tag = array( 
  "Sonntag", 
  "Montag", 
  "Dienstag", 
  "Mittwoch", 
  "Donnerstag", 
  "Freitag", 
  "Samstag"); 
  ?> 
<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  
  echo "<h1>Wochentage ausgeben mit for</h1>n"; 
  for($i=0; $i < count($tag); $i++) 
  { 
  echo "$tag[$i]</p>n";  
  } 
 
?> 
</body> 
</html>

Noch ein Beispiel zur for-Schleife:

<!DOCTYPE html> 
	<html> 
	 <head>
	  <title>Schleife</title>
	  <meta charset="utf-8" />
	  </head>
	 <body>
	 <h1>Ich zähle von 1 bis 10</h1>
	 
<?php
	for ($i=1; $i<11; $i++)
	{
		echo "$i";
		echo "<br>";
	}
		
?>

	 </body>
	</html>

while-Schleife

Auch die while-Schleife am Besten anhand eines Beispiels an.

<?php 
  $tag = array( 
  "Sonntag", 
  "Montag", 
  "Dienstag", 
  "Mittwoch", 
  "Donnerstag", 
  "Freitag", 
  "Samstag"); 
  ?> 
<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  

  echo "<h1>Wochentage ausgeben mit while</h1>n"; 
  $i = 0; 
  while($i < count($tag)) 
  { 
  echo "$tag[$i]</p>n"; 
  $i++;  
  } 
 
?> 
</body> 
</html>

do-while-Schleife

Beispiel zur Do-While-Schleife

<?php 
$i = 5; 
do { 
  echo $i; 
  $i--; 
} while ($i > 0); 
?>

++ und --

In den obigen Beispielen haben wir bereits die Operatoren ++ und -- kennen gelernt.

++ erhöht die Variable um 1, -- erniedriegt sie.

Vergleichoperatoren

Mit Vergleichoperatoren werden zwei Werte miteinander verglichen.

OperatorBedeutung
==gleich
===gleich - auch selber Typ
!= oder <>ungleich
<kleiner
>grösser
<kleiner
>=grösser gleich
< =kleiner gleich

Anwendung z.B.

	if $a == "1"
	{
	...
	}

Logische Operatoren

Mit logische Operatoren werden Bedingungen miteinander verknüpft

&&
and
Logisches Und
||
or
Logisches Oder
!
Logisches Nicht

Abfragen

if, else, elseif

Mit Abfragen kann der Programmablauf gesteuert werden. Mit if wird auf eine Bedingung überprüft. else leitet einen Programm-Block ein, der aufgerufen wird, wenn die vorherige if-Bedingung nicht erfüllt ist. elseif funktioniert wie else, nur dass zusätzlich eine weitere Bedingung überprüft wird.

<?php
  echo "<h1>if, else, elseif</h1>";
$i = 10;
if ($i < 10)
{
  echo "i ist kleiner als 10";
}
elseif ($i > 10)
{
  echo "i ist grösser als 10";
}
else
{
  echo "i genau 10.";
}
?>

switch, case, break, default

Will man eine Variable auf mehrere Möglichkeiten prüfen, dann ist das switch, case, break, default-Konstrukt die richtige Wahl:

<?php
echo "<h1>switch, case, break, default</h1>";
$auto = "Tesla";
switch ($auto) {

case "Audi":
  echo "Auto ist Audi";
  break;
case "BMW":
  echo "Auto ist BMW";
  break;
case "Tesla":
  echo "Auto ist Tesla";
  break;
  case "VW":
  echo "Auto ist Tesla";
  break; 
default:
  echo "Ich kenne die Automarke nicht";
}
?>

Mit dem Schlüsselwort switch leitet man das Konstrukt ein und gibt die zu überprüfende Variable an. Mit case überprüft man diese. Mit break bricht man die Überprüfung ab. Das Macht in der Regel Sinn, da ohne break die komplette Abfrage auch bei einem Treffer durchlaufen wird. Mit default leitet man einen Zweig ein, der dann ausgeführt wird, wenn keine der bisherigen case-Anweisungen zutreffen.

Übergabe von Werte / Formulare

Wie immer folgt hier erst das Beispiel:

<html> 
<body> 
  <p> 
  <h1>Menu</h1> 
  <ul> 
   <li><a href="<?php echo $_SERVER['PHP_SELF']?>?wahl=1">Erster 
Eintrag</a></li> 
   <li><a href="<?php echo $_SERVER['PHP_SELF']?>?wahl=2">Zweiter 
Eintrag</a></li> 
   <li><a href="<?php echo $_SERVER['PHP_SELF']?>?wahl=3">Dritter 
Eintrag</a></li> 
  </ul> 
  </p> 
<?php 
if (!empty($_REQUEST['wahl'])) 
{  
  echo "<h2>Sie haben Punkt ".$_REQUEST['wahl']. " gewählt.</h2>n"; 
 
  switch ($_GET['wahl']) 
  { 
  case 1: 
    echo "1"; 
    break; 
  case 2: 
    echo "2"; 
    break; 
  case 3: 
    echo "3"; 
    break; 
  default: 
    echo "Nix davon!"; 
  } 
} 
?> 
</body> 
</html>

Mittels $_SERVER['PHP_SELF'] holen wir uns den aktuellen Pfad zur Datei. Hinter den Link setzen wir ?wahl=wert. Dies ist eine der möglichen Werteüberbergaben. Wir erzeugen eine Variable Namens wahl, der wir einen Wert "wert" zuweisen. Das ganze ist aber auch recht risikobehaftet: Jeder kann den Wert in der URL-Zeile ändern. Es sollte klar sein, dass keinesfalls vertrauliche Parameter wir Passwörter etc. so übergeben werden dürfen.

Einen derartigen "URL-Wert" kann man entweder mit $_GET oder $_REQUEST auslesen.

Im nächsten Programmcode werten wir diesen Wert aus. Die Datei ruft sich immer wieder selber auf, so dass ein richtiges Menü entsteht.

Werteuebergabe mit Formulare...

Beispiel 1

formular.html

<!DOCTYPE html> 
	<html> 
	 <head>
	  <title>Formular</title>
	  <meta charset="utf-8" />
	  <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
	  
	</head>
	<body>
	 <form name="formular">
	  <input name="name" type="text" placeholder="Nachname" />
	  <input name="email" type="email" placeholder="email@example.org" required />	
	  <span class="show"><input name="gender" type="text"/></span>
	  <input type="submit" value="Abschicken" formmethod="get" formaction="formaction.php" formtarget="_self" />
	  </form>
	 
	 </body>
	</html>

In das Formular haben wir eine kleine Spam-Falle aufgabaut. Das Feld gender wird mittels CSS ausgeblendet. Hierzu steht in der style.css die folgende Anweisung.

style.css

span.show
{
display:none;
}

Ein Spambot ignoriert die Anweisung (daher ist sie auch in einem separaten CSS ausgelagert) hoffentlich und füllt das Feld aus.

formaction.php

<!DOCTYPE html> 
	<html> 
	 <head>
	  <title>Formularauswertung</title>
	  <meta charset="utf-8" />
	  <link rel="stylesheet" href="p.css" type="text/css" media="screen" />
	 </head>
	 <body>
	 <h1>Formularauswertung</h1>
	 
<?php
	$name=$_GET["name"];
	$email=$_GET["email"];
	$spam=$_GET["gender"];
	
	if ($spam  === "")
	{
	echo "<h2>Ihre Eingaben</h2>";
	echo "<p>$name</p>";
	echo "<p>$email</p>";
	}
	else
	{
	echo "Are you spamming me?";
	}

?>
	</body>
	</html>

Unschön an der Datenübertragung mit der GET-Methode ist, dass die Parameter hier im Klartext in der URL übertragen werden.

Arbeiten mit Dateien

fopen(), feof, fgets, fclose

fopen — Öffnet eine Datei oder URL und gibt ein Handle darauf zurück. Es sollte immer geprüpft werden, ob das Öffnen erfolgreich war. Hier sind die möglichen Modis zu beachten, siehe auch fopen in der Referenz.

feof — Prüft, ob ein Dateizeiger am Ende der Datei steht.

fgets — Liest eine Zeile von der Position des Dateizeigers.

fclose — Schließt einen offenen Dateizeiger.

<?php 
 $datei="beitraege.txt"; 
 $dh = fopen($datei, "r"); 
 if(!$dh) 
 { 
  print "Kann Datei "$datei" nicht &ouml;ffnen!"; 
 } 
 else 
 { 
  for ($i = 0; !feof($dh); $i++) 
  { 
  $zeile = fgets($dh); 
  if ($zeile != "") 
  { 
   echo "$zeile<br />n"; 
  } 
 } 
 fclose($dh); 
} 
?>

fopen bei php.net.

fputs(), fwrite()

fputs ist ein Alias von fwrite - Beides zum Schreiben von Dateien

<?php $datei="beitraege.txt"; $dh = fopen($datei, "a"); if(!$dh) { print "Kann Datei "$datei" nicht &ouml;ffnen!"; } else { { echo ("Schreibe Trallala in Datei!<br />"); fputs ($dh, "Trallalan"); } fclose($dh); } ?>

XML mit PHP

Seit PHP5 kann PHP auch ganz gut mit XML umgehen.

XML mit PHP - Beispiel 1

xml.php

<?php
$dom = new DOMDocument('1.0', 'utf-8');
 
$root = $dom->createElement('Members');
$dom->appendChild($root);
 
$root->appendChild($firstNode = $dom->createElement("Member"));
$firstNode->appendChild($dom->createElement("Name", "Max"));
$firstNode->appendChild($dom->createElement("Kanton", "AG"));
 
$root->appendChild($firstNode = $dom->createElement("Member"));
$firstNode->appendChild($dom->createElement("Name", "Moritz"));
$firstNode->appendChild($dom->createElement("Kanton", "LU"));
 
$root->appendChild($firstNode = $dom->createElement("Member"));
$firstNode->appendChild($dom->createElement("Name", "Zorro"));
$firstNode->appendChild($dom->createElement("Kanton", "ZH")); 
 
header('Content-type: text/xml; charset=utf-8');
echo $dom->saveXML();
?>

...erzeugt...

Hängt man...

$dom->save("write.xml");

...als letzten Befehl mit dran, dann wird die XML-Datei als write.xml abgespeichert.

XML mit PHP - Beispiel 2

read.php - Liest Werte aus XML-Datei aus und zeigt sie an.

<?php
$doc = new DOMDocument();
$doc->load ( 'write.xml' );

$members = $doc->getElementsByTagName ("Member");
$i = 1;
foreach ( $members as $member )
{
	
	$name = $member->getElementsByTagName ("Name" );
	$name = $name->item(0)->nodeValue;
	
	$kanton = $member->getElementsByTagName ("Kanton" );
	$kanton = $kanton->item(0)->nodeValue;

	echo "$i.Wert: $name $kanton<br>";
	$i++;
}
?>

XML und PHP - Beispiel 3

Gegeben ist die folgende XML-Datei

<?xml version="1.0" encoding="utf-8"?>
<artikeldaten>
<artikel nummer="1">
<name>Sony Alpha 6000 Systemkamera</name>
<preis>499.0</preis>
</artikel>
<artikel nummer="2">
<name>Samson Meteorite USB Mikrofon</name>
<preis>23.91</preis>
</artikel>
<artikel nummer="3">
<name>15 Zoll Radkappen QUAD Bicolor – universell</name>
<preis>34.95</preis>
</artikel>
<artikel nummer="4">
<name>BODUM 1446-01 Milchschäumer LATTEO</name>
<preis>23.95</preis>
</artikel> 
</artikeldaten&gt

Mittels

simplexml_load_file

lässt sich diese Datei ausgeben.

<html>
<body>
<?php
$data = simplexml_load_file("artikel.xml");
print "<pre>n";
foreach($data as $k => $v)
{
$artNr = $v->attributes();
print "$artNr -------------------------------------------------------------n";
 foreach($v as $k1 => $v2)
 {
 print "$k1: $v2<br>";
 }
}
print "</pre>n";
?>
</body>
</html>
 

Ergebnis

1 -------------------------------------------------------------
name: Sony Alpha 6000 Systemkamera
preis: 499.0
2 -------------------------------------------------------------
name: Samson Meteorite USB Mikrofon
preis: 23.91
3 -------------------------------------------------------------
name: 15 Zoll Radkappen QUAD Bicolor – universell
preis: 34.95
4 -------------------------------------------------------------
name: BODUM 1446-01 Milchschäumer LATTEO
preis: 23.95

Cookies

Durch Cookies kann man den Browser eines Benutzers wiedererkennen. In einem Cookie kann man bestimmte - wenige - Daten abspeichern.

Ein Cookie setzt man mit

setcookie ( cookiename, cookieinhalt, zeit)

cookiename

Name des Cookies

cookieinhalt

Der Inhalt des Cookies. Der Inhalt wird auf dem Gerät des Benutzers gespeichert

zeit

zeit definiert den Zeitpunkt, an dem das Cookie ungültig wird. Dies ist die Anzahl Sekunden seit Beginn der Epoche. Am einfachsten setzt man diesen Wert mittels time()+Anzahl Sekunden Gültigkeitsdauer.

60*60*24*30

steht z.B. für 30 Tage.

Einen Befehl zum Löschen eines Cookies gibt es nicht. Um ein Cookie zu löschen sendet man es erneut mit einer negativen Gültigkeit.

Beispiel

setcookie("test", "abc", time()-3600*24*100);

Cookies liest man über $_COOKIE aus. Der Wert ist aber nach erst vorhanden, wenn nach "setcookie" der Browser neu gestartet wurde.

Beispiel 1

<?php
setcookie("test", "abc", time()+3600*24*3);
if (!empty($_COOKIE['test']))
{
echo "Hab ein Cookie namens test gefunden. Es hat den Inhalt ";
echo($_COOKIE['test']);
echo ".n";
}
?>

Beispiel 2

<?php echo "Es sind insgesamt " . count($_COOKIE) . " Cookies gesetzt: <br /><br/>n"; foreach($_COOKIE as $cookieName => $cookieValue) { echo "Cookie <b>$cookieName</b>: $cookieValue<br />n"; } ?>

</pre

Danke an php-dummies.de .

Sessions

Daten können auch in sogenannten Sessions gespeichert werden. Diese laufen, bis der Browser beendet wird oder eine bestimmte Maxminalzeit. Bei Chrome bleibt die Session auch nach Schliessen des Browsers noch bestehen. Erst wenn man Cookies löscht, werden auch die Daten in der Session gelöscht.

An diesem Beispiel können wir die grundsätzliche Funktionsweise einsehen.

<?php
session_start();
if(!empty($_SESSION['mysession']))
{
echo "Inhalt der Session: ";
$value = $_SESSION['mysession'];
echo $value;
echo "n";
}
else
{
$_SESSION['mysession'] = "Das ist mein Session-Wert";
}
?>
<html>
<body>
<a href="<?php print $_SERVER['PHP_SELF']?>">
Prüfe, ob Session-Cookie gesetzt</a>
</body>
</html>

Mit

session_start();

wird eine Session erzeugt oder wieder aufgenommen.

Die Werte der Session werden in das Array

$_SESSION

gespeichert.

Referenz / Beispiele alphabetisch

$_COOKIE

<?php
setcookie("test", "abc", time()+3600*24*3);
if (!empty($_COOKIE['test']))
{
echo "Hab ein Cookie namens test gefunden. Es hat den Inhalt ";
echo($_COOKIE['test']);
echo ".n";
}
?>

$_GET

Ein assoziatives Array von Variablen, das die dem aktuellen Skript mittels URL-Parameter übergebenen Werte enthält.

$_GET bei php.net.

$_REQUEST

Ein assoziatives Array, das den Inhalt von $_GET, $_POST und $_COOKIE enthält.

$_REQUEST bei php.net.

$_SERVER['PHP_SELF']

Mittels $_SERVER['PHP_SELF'] wird der aktuellen Pfad zur Datei angesprochen.

$_SESSION

$_SESSION

enthält die Werte einer Session.

break

Mit break bricht man die Überprüfung in einem Switch-Konstrukt ab.

<?php
echo "<h1>switch, case, break, default</h1>";
$auto = "Tesla";
switch ($auto) {

case "Audi":
  echo "Auto ist Audi";
  break;
case "BMW":
  echo "Auto ist BMW";
  break;
case "Tesla":
  echo "Auto ist Tesla";
  break;
  case "VW":
  echo "Auto ist Tesla";
  break; 
default:
  echo "Ich kenne die Automarke nicht";
}
?>

case

Mit case überprüft man die Bedingungen in einem Switch-Konstrukt.

<?php
echo "<h1>switch, case, break, default</h1>";
$auto = "Tesla";
switch ($auto) {

case "Audi":
  echo "Auto ist Audi";
  break;
case "BMW":
  echo "Auto ist BMW";
  break;
case "Tesla":
  echo "Auto ist Tesla";
  break;
  case "VW":
  echo "Auto ist Tesla";
  break; 
default:
  echo "Ich kenne die Automarke nicht";
}
?>

date()

Formatiert ein(e) angegebene(s) Ortszeit/Datum

<html> 
<head> 
<title></title> 
</head> 
<body> 
<p>Heute ist 
  <?php 
    print date("d.m.y", time()); 
  ?> 
</p> 
</body> 
</html>

Date bei php.net.

default

Mit default leitet man einen Zweig in einer Switch-Anweisung ein, der dann ausgeführt wird, wenn keine der bisherigen case-Anweisungen zutreffen.

<?php
echo "<h1>switch, case, break, default</h1>";
$auto = "Tesla";
switch ($auto) {

case "Audi":
  echo "Auto ist Audi";
  break;
case "BMW":
  echo "Auto ist BMW";
  break;
case "Tesla":
  echo "Auto ist Tesla";
  break;
  case "VW":
  echo "Auto ist Tesla";
  break; 
default:
  echo "Ich kenne die Automarke nicht";
}
?>

do-while-Schleife

<?php 
$i = 5; 
do { 
  echo $i; 
  $i--; 
} while ($i > 0); 
?>

echo()

Ausgabe von Text

echo "<h1>Wochentage</h1>n";

else

<?php
  echo "<h1>if, else, elseif</h1>";
$i = 10;
if ($i < 10)
{
  echo "i ist kleiner als 10";
}
elseif ($i > 10)
{
  echo "i ist grösser als 10";
}
else
{
  echo "i genau 10.";
}
?>

elseif

<?php
  echo "<h1>if, else, elseif</h1>";
$i = 10;
if ($i < 10)
{
  echo "i ist kleiner als 10";
}
elseif ($i > 10)
{
  echo "i ist grösser als 10";
}
else
{
  echo "i genau 10.";
}
?>

Escape-Sequenz

\
Backslash
n
Neue Zeile
t
Tabulator
r
Wagenrücklauf

feof()

fclose — Schliesst einen offenen Dateizeiger

<?php 
 $datei="beitraege.txt"; 
 $dh = fopen($datei, "r"); 
 if(!$dh) 
 { 
  print "Kann Datei "$datei" nicht &ouml;ffnen!"; 
 } 
 else 
 { 
  for ($i = 0; !feof($dh); $i++) 
  { 
  $zeile = fgets($dh); 
  if ($zeile != "") 
  { 
   echo "$zeile<br />n"; 
  } 
 } 
 fclose($dh); 
} 
?>

fclose bei php.net.

feof()

feof — Prüft, ob ein Dateizeiger am Ende der Datei steht.

<?php 
 $datei="beitraege.txt"; 
 $dh = fopen($datei, "r"); 
 if(!$dh) 
 { 
  print "Kann Datei "$datei" nicht &ouml;ffnen!"; 
 } 
 else 
 { 
  for ($i = 0; !feof($dh); $i++) 
  { 
  $zeile = fgets($dh); 
  if ($zeile != "") 
  { 
   echo "$zeile<br />n"; 
  } 
 } 
 fclose($dh); 
} 
?>

feof bei php.net.

fgets()

fgets — Liest eine Zeile von der Position des Dateizeigers.

<?php 
 $datei="beitraege.txt"; 
 $dh = fopen($datei, "r"); 
 if(!$dh) 
 { 
  print "Kann Datei "$datei" nicht &ouml;ffnen!"; 
 } 
 else 
 { 
  for ($i = 0; !feof($dh); $i++) 
  { 
  $zeile = fgets($dh); 
  if ($zeile != "") 
  { 
   echo "$zeile<br />n"; 
  } 
 } 
 fclose($dh); 
} 
?>

fgets bei php.net.

fopen()

fopen — Öffnet eine Datei oder URL und gibt ein Handle darauf zurück. Es sollte immer geprüpft werden, ob das Öffnen erfolgreich war.

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

Bei fopen muss der entsprechende Mode beachtet werden. Er legt fest, ob eine Datei zum Lesen, Schreiben, etc. geöffnet wird:

r
Lesen
r+
Lesen und Schreiben, Dateizeiger auf Anfang
w
Schreiben, Dateizeige auf Anfang, Datei wird gekürzt bzw. versucht zu erzeugen.
w+
Lasen und Schreiben, Dateizeige auf Anfang, Datei wird gekürzt bzw. versucht zu erzeugen.
a
Schreiben bzw. Anhängen.
a+
Lesen und Schreiben bzw. Anhängen.
x
Nur Schreiben, Dateizeiger auf Anfang. Fehler falls Datei schon existiert.
x+
Lesen und Schreiben, Dateizeiger auf Anfang. Fehler falls Datei schon existiert.
c
Schreiben. Existiert die Datei nicht, wird sie erzeugt. Existiert sie, wird der Dateizeige auf Anfang gesetzt.
c+
Lesen + Schreiben. Existiert die Datei nicht, wird sie erzeugt. Existiert sie, wird der Dateizeige auf Anfang gesetzt.
<?php 
 $datei="beitraege.txt"; 
 $dh = fopen($datei, "r"); 
 if(!$dh) 
 { 
  print "Kann Datei "$datei" nicht &ouml;ffnen!"; 
 } 
 else 
 { 
  for ($i = 0; !feof($dh); $i++) 
  { 
  $zeile = fgets($dh); 
  if ($zeile != "") 
  { 
   echo "$zeile<br />n"; 
  } 
 } 
 fclose($dh); 
} 
?>

fopen bei php.net.

for-Schleife

<?php 
  $tag = array( 
  "Sonntag", 
  "Montag", 
  "Dienstag", 
  "Mittwoch", 
  "Donnerstag", 
  "Freitag", 
  "Samstag"); 
  ?> 
<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  
  echo "<h1>Wochentage ausgeben mit for</h1>n"; 
  for($i=0; $i < count($tag); $i++) 
  { 
  echo "$tag[$i]</p>n";  
  } 
 
?> 
</body> 
</html>

foreach-Schleife

Schleifenkonstrukt, was sich insbesonder gut für den Umgang mit assoziativen Arrays eignet.

PHP-Tutorial - foreach-Schleife

fputs()

fputs dient zum Schreiben von Dateien

<?php $datei="beitraege.txt"; $dh = fopen($datei, "a"); if(!$dh) { print "Kann Datei "$datei" nicht &ouml;ffnen!"; } else { { echo ("Schreibe Trallala in Datei!<br />"); fputs ($dh, "Trallalan"); } fclose($dh); } ?>

fwrite()

fwrite dient zum Schreiben von Dateien

<?php $datei="beitraege.txt"; $dh = fopen($datei, "a"); if(!$dh) { print "Kann Datei "$datei" nicht &ouml;ffnen!"; } else { { echo ("Schreibe Trallala in Datei!<br />"); fwrite ($dh, "Trallalan"); } fclose($dh); } ?>

if

<?php
  echo "<h1>if, else, elseif</h1>";
$i = 10;
if ($i < 10)
{
  echo "i ist kleiner als 10";
}
elseif ($i > 10)
{
  echo "i ist grösser als 10";
}
else
{
  echo "i genau 10.";
}
?>

Kommentare

// Einzeiliger Kommentar

/* Mehrzeiliger
Kommentar */

Logische Operatoren

&&
and
Logisches Und
||
or
Logisches Oder
!
Logisches Nicht

phpinfo

Einstellung der PHP-Umgebung. Auslesen mit:

<?php
  phpinfo();
?>

print()

Ähnlich wie echo Ausgabe von Text. print() kann nur einen Parameter ausgeben, echo() dagegen mehrere.

Prüffunktionen

is_array
Prüft, ob die Variable ein Array ist
is_bool
Prüft, ob eine Variable vom Typ boolean ist
is_callable
Prüft ob der Inhalt einer Variable als Funktion aufgerufen werden kann
is_float (=is_double,is_real)
Prüft, ob eine Variable vom Typ float ist
is_int (=is_integer,os_long)
Prüft, ob eine Variable vom Typ int ist
is_null
Prüft ob eine Variable NULL enthält, also keinen Wert enthält.
is_numeric
is_object
is_resource
is_scalar
is_string
is_unicode
isset
empty

session_start()

Mit

session_start();

wird eine Session erzeugt oder wieder aufgenommen.

setcookie()

Ein Cookie setzt man mit

setcookie ( cookiename, cookieinhalt, zeit)

time()

Gibt den aktuellen Unix-Timestamp/Zeitstempel zurück.

<html> 
<head> 
<title></title> 
</head> 
<body> 
<p>Heute ist 
  <?php 
    print date("d.m.y", time()); 
  ?> 
</p> 
</body> 
</html>

Time bei php.net.

switch

Mit dem Schlüsselwort switch leitet man das switch-Konstrukt ein und gibt die zu überprüfende Variable an.

<?php
echo "<h1>switch, case, break, default</h1>";
$auto = "Tesla";
switch ($auto) {

case "Audi":
  echo "Auto ist Audi";
  break;
case "BMW":
  echo "Auto ist BMW";
  break;
case "Tesla":
  echo "Auto ist Tesla";
  break;
  case "VW":
  echo "Auto ist Tesla";
  break; 
default:
  echo "Ich kenne die Automarke nicht";
}
?>

Vergleichoperatoren

==
Gleichheit
!=
Ungleichheit
<
Kleiner
>
Grösser
<=
Kleiner Gleich
>=
Grösser Gleich

while-Schleife

<?php 
  $tag = array( 
  "Sonntag", 
  "Montag", 
  "Dienstag", 
  "Mittwoch", 
  "Donnerstag", 
  "Freitag", 
  "Samstag"); 
  ?> 
<html> 
<head><title>Ausgabe</title></head> 
<body> 
<?php  

  echo "<h1>Wochentage ausgeben mit while</h1>n"; 
  $i = 0; 
  while($i < count($tag)) 
  { 
  echo "$tag[$i]</p>n"; 
  $i++;  
  } 
 
?> 
</body> 
</html>

Weitere Quellen / Referenzen

PHP.net

Du willst meine Arbeit unterstützen? Dann freue ich mich über eine kleine Spende!

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert