Sie sind auf Seite 1von 6

PHP Grundlagen

Heinrich - Hertz - Schule Karlsruhe



Seite 1 von 6
Letzte Aktualisierung: 07.07.2005

1. Zugriffsschema eines PHP-DoKuments
Die serverseitige Scriptsprache PHP (Kurzform von PHP Hypertext Preprocessor oder Personal
Home Page) ist speziell fr den Einsatz im Internet entwickelt. PHP ist fr alle gngigen
Betriebssysteme als CGI-Version oder als Modulversion eines WEB-Servers verfgbar.
! xyz.php !
SERVER
CLIENT
User-Home
/home/public_html
Scriptsprache
PHP-Modul
Web-Server
Apache
Web-Client
IE / Mozilla . . .
? xyz.php ?
C
C
C
C
C



C
<script language=php>
C echo Ausgabe ;
C
</script>

Server Side Scripting


C
<?php

C echo Ausgabe ;

C
?>


SGML-Schreibweise

1.1. Einbinden von PHP-Code in HTML
Damit die serverseitigen PHP-Scripte
korrekt verarbeitet werden knnen:
muss der Dateiextender *.php (auch
*.php4 bzw. *.php5) lauten.
mssen innerhalb des Dokuments die
Scriptelemente gekennzeichnet sein
(siehe unten).


Theoretisch kann die Scripteinbindung an jeder Stelle (auch mehrmals) innerhalb des
Dokuments erfolgen. Wenn das Script selber Ausgaben erzeugt (z.B. durch echo Ausgabe ;),
sollten diese Teile innerhalb des HTML-Bodys (<body> . . . </body>) stehen.


C
phpinfo(); // einzeiliger Kommentar
C
phpinfo(); /*
C
mehrzeiliger Kommentar
C
*/ echo ist zu ende;
Syntax Kommentar

1.2 Kommentare in PHP
knnen auch genutzt werden um
Abschnitte des Quellcodes zu
Testzwecken auszublenden, da
dieser nicht geparst wird.

C CLIENT fordert ein Document (REQUEST)
C SERVER ldt Doc. aus DOC-ROOT oder USER-HOMES
C Doc. wird dem PHP-Modul zum parsen bergeben . . .
C . . . und an die SERVER-Instanz zurckgereicht
C Doc.wird an den CLIENT gesendet (RESPONSE)
Serverzugriff


PHP Grundlagen


Heinrich - Hertz - Schule Karlsruhe

Seite 2 von 6
Letzte Aktualisierung: 07.07.2005

2. Datentypen und Variablen
PHP untersttzt u.a. die (skalaren) Datentypen: Boolean, Integer, Fliekomma-Zahlen und String
sowie die zusammengesetzten Typen: Array und Object. ZurTyp-Umwandlung wird der Name des
gewnschten Typs vor der umzuwandelnden Variablen in Klammern gesetzt.

C
<?PHP

C
$wert_vor = 3.14;

C
$wert_nach = (int)$wert_vor;

C
echo Erg = .$wert_nach;

C
?>

Folgende Umwandlungen sind mglich:
(int), (integer) - nach integer
(bool), (boolean) - nach boolean
(float), (double), (real) - nach float
(string) - nach string
(array) - nach array

2.1. Wichtige Funktionen im Umgang mit Variablen
Funktion Rckgabe Beschreibung
gettype($var); int, string, array . . . unknow type, wertet den Datentyp aus
isset($var); 1 $var angelegt / 0 sonst testet ob $var existiert
unset($var); keine Rckgabe ($var wird entfernt) lscht eine Variable
empty($var); TRUE $var ist 0 / leer oder nicht dekl. berprft, ob Zuweisung erfolgt ist
is_int($var)
TRUE $var ist Integer
FALSE sonst
testet konkreten Typ
( auch is_string(), is_array() . . . )

Vordefinierte Variablen
Array Variablen, die . . .
$_GET[] ber HTTP GET geliefert werden.
$_POST[] ber HTTP POST geliefert werden.
$_FILES[] ber HTTP Post Datei-Uploads geliefert werden.
$_COOKIE[] ber HTTP Cookies geliefert werden.
werden in PHP (ab Ver 4.x)
ber die REGISTER-GLOBALS
bergeben und sind abhngig
vom Web-Server, der PHP-
Version sowie den Parametern
der php.ini Datei. $_SESSION[] aktuell in der Session registriert sind.

2.2. Ausgabe von Daten und Variablen
Strings knnen durch doppelte ( ) oder einfache ( ) Anfhrungszeichen begrenzt werden. Zur
Maskierung von Zeichen wird das Backslash verwendet (z.B. \n New Line oder \t Tabulator).

C
$Vor = Alex; $Nach = Rimba;

Ansicht im Browser :
C
echo Herr $Vor vonundzu $Nach;

C Herr Alex vonundzu Rimba
C
echo Herr $Vor vonundzu $Nach;

C Herr $Vor vonundzu $Nach
C
echo Herr.$Vor. vonundzu .$Nach;

C Herr Alex vonundzu Rimba
C
$aus.= Herr ;

C
C
$aus.= $Vor. vonundzu .$Nach;

C

echo $aus;

Herr Alex vonundzu Rimba
C
echo <<<marke


viel sehr viel Text

viel <i>"... sehr viel"</i> Text


auch mit HTML TAGS

<br> auch mit <b>HTML TAGS</b>


1
marke;

1


PHP Grundlagen


Heinrich - Hertz - Schule Karlsruhe

Seite 3 von 6
Letzte Aktualisierung: 07.07.2005

3. Arrays (Felder)
Arrays werden hufig eingesetzt, wenn die Anzahl der Variablen zur Entwicklungszeit nicht
bekannt ist (z.B. Speichern von Ergebnissen einer Datenbankanfrage).
C
$name[Bezeichner]= Wert;

C
echo $name[Bezeichner];


Wertzuweisung und Ausgabe

name :
Bezeichner :

Wert :
Arraybezeichnung
Selektion einzelner Zellen
(numerisch oder assoziativ)
Zelleninhalt

Arrays werden (wie alle PHP-Variblen) nicht explizit sondern implizit (durch den 1. Aufruf)
deklariert. Sie werden unterschieden nach der Art des Bezeichners (numerisch / assoziativ).

3.1 Eindimensionale indizierte und Assoziativ-Arrays



C
$KUNDEN[0]= "Mller"; $KUNDEN[1]= "Maier";


$KUNDEN[2]= "Schulz"; $KUNDEN[3]= "Weber";

in Beispiel C wird ein
indiziertes und mit C ein
Assoziativ-Array erzeugt.
C
$PERSON["Name"]= "Mller";


$PERSON ["Alter"]= 26


$PERSON ["Gehalt"]= "2400 ";


eindimensionale Arrays (I)

Numerische Bezeichner
(INDEX) werden ohne
angegeben, Assozitav-
Bezeichner wie Strings (also
mit Hochkomma).

Neben der Einzelzuweisung zu jeder Feldzelle kann auch die PHP-Fkt. array() genutzt werden.
C
$KUNDE=array("Mller" , "Maier", "Schulz" ,"Weber");
C
$PERSON=array("Name"=>"Mller", "Alter"=>26, "Gehalt"=>"2400 ");

eindimensionale Arrays (II)

3.2 Mehrdimensionale Arrays



C
$DATA[0]["Name"]= "Mller";


$DATA[0]["Alter"]= 24;


$DATA[0]["Gehalt"]= "2400 ";

C
$DATA[1]=array("Name"=>"Maier","Alter"=>26,

"Gehalt"=>"1200 ");


Arrays knnen mehrere
Dimensionen haben, die durch
die Angabe von mehreren
Bezeichnern erzeugt werden.



Arrays knnen alle Datentypen enthalten, also Integer, Strings,
Objekte und wiederum Arrays. Somit kann die nebenstehende
Personaltabelle auch als eindimensionales Array mit Arrays als
Feldinhalten erzeugt werden
C
$P0=array("Name"=>"Mller","Alter"=>24, "Gehalt"=>"2400 ");
C $P1=array("Name"=>"Maier", "Alter"=>26, "Gehalt"=>"1200 "); //usw.
C
$DATA=array($P0,$P1,$P2,$P3);

C
echo count($DATA);


Ausgabe ist 4 ( 0, 1, 2, 3 )
C
echo count($DATA[0]);
3.3. Arrays als Funktionsargument
Bei den meissten (eindim.) Array-Fkt (z.B.
count() ) kann durch die Dimensionsangabe
der gewnschte Bezug hergestellt werden.


Ausgabe ist 3
(Name,Alter,Gehalt)
Nr Name Alter Gehalt
0 Mller 24 2400
1 Maier 26 1200
2 Schulz 37 nichts
3 Weber 28 3100


PHP Grundlagen


Heinrich - Hertz - Schule Karlsruhe

Seite 4 von 6
Letzte Aktualisierung: 07.07.2005

4. Operatoren
Die Rangfolge der Operatoren entspricht den allgemeinen Regeln (z.B. Punkt vor Strich etc.).

$a + $b Summe von $a und $b.

UND $a and $b
$a - $b Differenz von $a und $b.

ODER $a or $b
$a * $b Produkt von $a und $b.

ausschlielich ODER $a xor $b
$a / $b Quotient von $a und $b.

NICHT ! $a
A
r
i
t
h
m
e
t
i
s
c
h

$a % $b Rest von $a durch $b (ganz).

UND $a && $b L
o
g
i
s
c
h
e







$a == $b gleich

UND $a & $b
$a === $b identisch

ODER $a | $b
$a != $b ungleich

ausschlielich ODER (XOR) $a ^ $b
$a !== $b nicht identisch

NICHT ~ $a
$a < $b kleiner als (bzw. > )

nach links verschieben $a << $b
V
e
r
g
l
e
i
c
h

$a <= $b kleiner gleich als (bzw. >= )

nach rechts verschieben $a >> $b B
i
t
-
O
p
e
r
a
t
o
r
e
n


5. Kontrollstrukturen
C
if (Bedingung)
C { Anweisung(en);}
C [else { Anweisung(en); }]
PHP kennt fr die meisten Kontroll-
strukturen (funktional-identische) Syntax-
Varianten um den Umsteigern aus anderen
Sprachen den Einstieg in PHP zu erleichtern.


ein [zwei]-seitige Verzweigung

C
while (Bedingung)
C do { Anweisung(en);}
C { Anweisung(en);}
C
while (Bedingung)

Kopfgesteuerte bedingte Schleife


Fussgesteuerte bedingte Schleife

C
for(Init;Bedingung;Inkrement)
C
foreach($array as $key=>$val)
C { Anweisung(en);}
C
{ Anweisung(en);}

Zhlergesteuerte Schleife


Array Schleife

6. Unterprogramme und Modularisierung
Funktionen werden hufig in separate Dateien ausgelagert und mit include eingebunden,
wodurch neben der Modularisierung auch ein Schutz (z.B. htacces) erreicht werden kann.

C
<?php
C
<?php
C
include("funktion.inc.php");
C function name($par1,$par2,...)
C $erg=name($wert1,$wert2, ...);
C { Anweisung(en) ;
C
echo $erg; ?>
C
return $ruckgabe;

aufruf.php

}
C
?>

funktion.inc.php
Mit include bzw. require knnen auch
andere (beliebige Dateien) eingebunden
werden.




PHP Grundlagen


Heinrich - Hertz - Schule Karlsruhe

Seite 5 von 6
Letzte Aktualisierung: 07.07.2005

7. Parameter (Variablen)-bergabe an PHP-Scripte
Um einem PHP-Script beim Aufruf Werte zu bergeben vom Client zum Server, werden die
bertragungsmethoden GET oder POST verwendet. Diese unterscheidenen sich u.a. in :
Daten werden durch Anhngen an die URL
bermittelt

Daten werden im HEADER des
Serveraufrufes gespeichert
Daten sind in der Adresszeile des Browser
sicht - und nderbar

Daten werden clientseitig nicht gespeichert
(nicht sichtbar im Verlauf oder in Favoriten)
G
E
T


Kapazitt ist auf 2 KB beschrnkt keine Beschrnkung der Datengrsse P
O
S
T


7.1 Aufruf einer GET-bertragung (URL in HTML bzw. PHP)

C
<a href="script2.php?wert1=10&wert2=20">WERTE fr Script2</a>

Link in der HTML-Datei script1.html

C
<?php $W1=1*10; $W2=2*10;
C
echo "<a href=\"script2.php?wert1=".$W1."&wert2=".$W2."\">LOS</a>";
C
?>

Link in der HTML-Datei script1.php

Der Zugriff auf bergabewerte . . .



C
<?php

C
$Var1=$_GET["wert1"];

C
$Var2=$_GET["wert2"];

C
echo "Danke fr $Var1 $Var2";

C
?>


Formular in script3.php

erfolgt ber das assoziative GLOBAL-
ARRAY $_GET welches fr jede Variable
einen Eintrag enthlt. Diese mssen im
Script explizit gelesen werden.

TIPP: mit extract($_GET); stehen
automatisch alle GET-Variablen
zur Verfgung, was nur fr Test-
zwecke verwendet werden sollte.

7.2. POST-bertragung (aus Formularen)
erfolgt meist ber ein HTML-Formular (welches auch PHP generiert sein kann). Die Auswertung
(in script4.php) ist hnlich zu script2.php mit dem Unterschied, dass nun auf das GLOBAL-
ARRAY $_POST zugegriffen werden muss (auch hier kommen
die selben Mechanismen zum Tragen). Die assoziativ Bezeichnung
der $_POST["xxx"] Elemente werden duch die name-Attribute
der entsprechenden input-TAGS definiert (case-sensitiv !).
C
<form target="script4.php" methode="POST">



C
<input type="Text" name="wert1"></input>



C
<input type="Text" name="wert2"></input>



C
<input type="Submit" value="schicken"></input>



C
</form>




Formular in script3.html






Anhang


Heinrich - Hertz - Schule Karlsruhe

Seite 6 von 6
Letzte Aktualisierung: 07.07.2005

A1 ntzliche String-Funktionen

Syntax /Beispiel Erklrung
1
string addcslashes(string, charlist)
addcslashes(rz.uni.ka.de,.)= rz\.uni\.ka\.de
Stellt jedem Zeichen aus string das in
charlist enthalten ist ein\ voran.
2
string chr(int) / int ord(string)
chr(65)=A / ord(A)=65
Wandelt Buchstaben in ASCII Wert bzw.
ASCII in Buchstaben um.
4
mixed count_chars(string [,mode])
[mode = 0 bis 4]
Gibt (entsprechend mode) die Auftritts-
hufigkeit der Buchstaben in string zurck.
5 int crc32(string) Berechnet polynomischen CRC32-Wert.
6 string md5(string) Verschlsselt nach der MD5-Methode.
7 string crypt(string [,string salt]) Verschlsselt string (One-Way-Verfahren).
8
array explode(separator, string [,int])
string implode(string, array)
Teilt string an Hand von seperator
Fgt ein Array zu einem string zusammen.
10 string htmlentities(string[, int quote_style]) Wandelt Sonderzeichen in HTML-Code.
11 string ltrim(string) / rtrim(str) / trim(str) Lscht linke/rechte/alle Leerzeichen.
14 string str_repeat(string, int ) Verlngert string int mal.
15
string str_replace(needle, string, haystack)
str_replace("@","#","rim@de")=rim#de
Sucht in haystack alle Zeichen aus needle
und ersetzt sie durch Zeichen aus string.
16
string strchr(haystack, needle)
string strrchr(haystack, needle)
strchr(rimba@www@de,"@")=@www@de
Sucht in haystack nach dem 1. (strchr) bzw.
letzten (strrchr)Auftreten von needle und
gibt den Rest zurck.
18
int strpos(haystack, needle)
int strrpos(haystack, needle)
strpos(rimba@www@de,"@")= 5
Sucht in haystack nach dem 1. (strpos) bzw.
letzten (strrpos) Auftreten von needle und
gibt die Position zurck.
20 int strlen(string) Gibt die Lnge von string an.
21 string strrev(string) Dreht string um.
22 string strtok(string, needle) Zerlegt string an der Pos. needle (auch Rek.)
23
string strtolower(string)
string strtoupper(string)
Wandelt string in Kleinbuchstaben (lower)
bzw. Grossbuchstaben (upper) um.
25 string substr(string, start [,length]) Gibt Teilstr. von start len Zeichen zurck.
26 int substr_count(haystack, needle) Gibt an wie oft needle in haystack vorkommt