Nützliches
Kommen
wir
nun
zu
einem
etwas
nützlicheren
Beispiel
.
Wir
wollen
prüfen
,
welchen
Browser
die
Person
,
die
die
Seite
besucht
,
benutzt
.
Um
das
zu
tun
,
prüfen
wir
den
"
user
agent
"-String
,
den
der
Browser
als
Teil
seiner
HTTP-Anforderung
sendet
.
Diese
Information
ist
in
einer
Variablen
abgelegt
.
In
PHP
beginnen
Variablen
immer
mit
einem
Dollar-Zeichen
.
Die
Variable
,
die
uns
jetzt
interessiert
,
ist
$_SERVER[
"HTTP_USER_AGENT"
]
.
PHP Autoglobals-Anmerkung:
$_SERVER
ist eine speziell reservierte PHP-Variable, die alle
Informationen über den Webserver enthält.
Diese
Variable
wird
auch
als
auto
-
oder
superglobal
bezeichnet
.
Mehr
Informationen
darüber
Sie
auf
der
Manual-Seite
über
Autoglobals
.
Diese
speziellen
Variablen
wurden
in
PHP
4.1.0
eingeführt
.
Vorher
wurden
stattdessen
die
älteren
$HTTP_*_VARS
-Arrays
benutzt
,
also
z.B
.
$HTTP_SERVER_VARS
.
Auch
wenn
diese
Variablen
nicht
mehr
genutzt
werden
sollen
-
sie
existieren
weiterhin
.
(
Beachten
Sie
auch
die
Seite
Alten
Code
mit
neuen
PHP-Versionen
benutzen
.
)
Um
die
Variable
auszugeben
,
schreiben
wir
einfach
:
Beispiel
2-2
.
Variable
ausgeben
(
Array-Element
)
Die
Ausgabe
dieses
Beispiel
könnte
so
aussehen
:
|
Es
gibt
viele
Typen
Es
gibt
viele
Typen
von
Variablen
.
Im
obigen
Beispiel
haben
wir
ein
Array
-Element
ausgegeben
.
Arrays
können
sehr
nützlich
sein
.
$_SERVER
ist
nur
eine
von
vielen
Variablen
,
die
Ihnen
automatisch
von
PHP
zur
Verfügung
gestellt
werden
.
Eine
Liste
finden
Sie
auf
der
Seite
Reservierte
Variablen
im
Manual
.
Eine
vollständige
Liste
können
Sie
auch
bekommen
,
wenn
Sie
eine
Datei
wie
die
folgende
erstellen
:
Beispiel
2-3
.
Alle
vordefinierten
Variablen
mit
phpinfo(
)
ausgeben
|
Wenn
Sie
diese
Datei
in
Ihrem
Browser
öffnen
,
sehen
Sie
eine
Seite
mit
vielen
Informationen
über
PHP
zusammen
mit
einer
Liste
aller
für
Sie
verfügbaren
Variablen
.
Sie
können
mehrere
PHP-Anweisungen
innerhalb
eines
PHP-Tags
platzieren
und
so
kleine
Code-Blöcke
schreiben
,
die
mehr
als
nur
eine
Ausgabe
mit
echo(
)
enthalten
.
Wenn
wir
zum
Beispiel
prüfen
möchten
,
ob
es
sich
beim
Browser
des
Besuchers
um
den
Internet
Explorer
handelt
,
können
wir
folgenden
Code
benutzen
:
Beispiel
2-4
.
Beispiel
,
das
Kontrollstrukturen
und
Funktionen
benutzt
?php
if
(
strstr($_SERVER["HTTP_USER_AGENT"]
,
"MSIE")
)
{
echo
"Sie
benutzen
Internet
Explorer
br
/
"
;
}
?
|
Die
Ausgabe
dieses
Skripte
könnte
so
aussehen
:
Sie
benutzen
Internet
Explorer
br
/
|
|
Hier
haben
wir
Ihnen
eine
ganze
Reihe
von
neuen
Konzepten
vorgestellt
.
Wir
haben
hier
zuerst
eine
if
-Anweisung
.
Wenn
Sie
mit
der
Grundlagen-Syntax
von
der
Programmiersprache
C
vertraut
sind
,
sollte
Ihnen
dies
logisch
erscheinen
.
Wenn
Sie
C
oder
eine
andere
Sprache
,
die
die
obige
Syntax
benutzt
,
nicht
gut
genug
kennen
,
dann
sollten
Sie
sich
ein
Buch
mit
einer
PHP-Einführung
besorgen
und
die
ersten
Kapitel
lesen
.
Sie
können
natürlich
auch
in
die
Sprachreferenz
des
Manuals
schauen
.
Eine
Liste
von
PHP-Büchern
finden
Sie
unter
http
:
/
/www.php.net
/
books.php
.
Das
zweite
hier
vorgestellte
Konzept
ist
der
Aufruf
der
Funktion
strstr(
)
.
strstr
ist
eine
in
PHP
eingebaute
Funktion
,
die
nach
einem
String
in
einem
anderen
String
sucht
.
In
diesem
Fall
suchen
wir
nach
"
MSIE
"
in
$_SERVER["HTTP_USER_AGENT"
]
.
Wenn
der
String
gefunden
wird
,
gibt
die
Funktion
TRUE
zurück
,
wird
er
nicht
gefunden
,
dann
wird
FALSE
zurückgegeben
.
Wenn
TRUE
zurückgeben
wird
,
wird
die
if
-Anweisung
zu
TRUE
Wenn
TRUE
zurückgeben
wird
,
wird
die
if
-Anweisung
zu
TRUE
ausgewertet
und
der
Code
innerhalb
der
geschweiften
Klammern
wird
ausgeführt
.
Wenn
aber
FALSE
zurückgegeben
wird
,
wird
der
Code
innerhalb
der
Klammern
nicht
ausgeführt
.
Probieren
Sie
weitere
ähnliche
Beispiele
mit
if
,
else
und
anderen
Funktionen
wie
strtoupper(
)
oder
strlen(
)
.
Jede
dieser
Manual-Seiten
enthält
weitere
Beispiele
.
Wir
können
jetzt
einen
Schritt
weitergehen
und
sehen
,
wie
Sie
innerhalb
eines
PHP-Blocks
den
PHP-Modus
verlassen
und
wieder
in
ihn
hinein
gelangen
können
:
Beispiel
2-5
.
HTML
-
und
PHP-Modus
vermischt
?php
if
(
strstr($_SERVER["HTTP_USER_AGENT"]
,
"MSIE")
)
{
?
h3
strstr
muss
true
zurückgegeben
haben
/
h3
center
b
Sie
benutzen
Internet
Explorer
/
b
/
center
?php
}
else
{
?
h3
strstr
muss
false
zurückgegeben
haben
/
h3
center
b
Sie
benutzen
nicht
Internet
Explorer
/
b
/
center
?php
}
?
|
Die
Ausgabe
dieses
Skripts
könnte
so
aussehen
:
h3
strstr
muss
true
zurückgegeben
haben
/
h3
center
b
Sie
benutzen
Internet
Explorer
/
b
/
center
|
|
Anstatt
die
PHP
echo
-Anweisung
für
die
Ausgabe
zu
benutzen
,
haben
wir
den
PHP-Modus
verlassen
und
normales
HTML
verwendet
.
Der
wichtige
Punkt
hierbei
ist
,
dass
der
logische
Ablauf
des
Skripts
dadurch
nicht
gestört
wird
.
Nur
einer
der
beiden
HTML-Blöcke
wird
ausgegeben
-
abhängig
davon
,
ob
strstr(
)
TRUE
oder
FALSE
zurückgibt
bzw
.
ob
der
String
MSIE
gefunden
wird
oder
nicht
.