Inhaltsverzeichnis
PHP
Hello World
- helloworld.php
<?php echo "Hello World!\n"; ?>
Eingebauter Webserver
Ab der Version 5.4 verfügt PHP über einen eigenen Webserver, der mittels eines Terminals gestartet werden kann:
php -S localhost:8000 -t foo/public
Mit dem Argument -S
wird der Server initialisiert, dazu wird eine Adresse, meist localhost
, mit einem beliebigen Port, hier 8000
, angegeben. Das Argument -t
gibt das Verzeichnis an, dass als Document Root des Webservers funktionieren soll, relativ zu dem aktuellen Verzeichnis (hier foo/public
).
PHP-Shorttag
Neben dem PHP-Tag <?php
gibt es noch eine Kurzform, den sogenannten PHP-Shorttag: <?
. Dieser kann u.U. zu Problemen führen, da dieser z.B. auch ähnlich zum Tag für die XML-Deklaration ist.
Um den PHP-Shorttag zu deaktivieren sollte in der php.ini
die Funktion short_open_tag
auf off
gesetzt werden:
short_open_tag = Off
Wenn man keinen Zugriff auf die php.ini
hat, wie bei den meisten Shared-Hostern, kann dieser auch über die HTACCESS deaktiviert werden:
php_flag short_open_tag off
Strings
In PHP gibt es zwei Arten Strings (Zeichenketten) in Anführungszeichen zu setzen: In doppelten oder einfachen Anführungszeichen. Der größte und wichtigste Unterschied zwischen diesen Anführungszeichen ist, dass Strings in doppelten Anführungszeichen vom Interpreter ausgewertet werden und Strings in einfachen Anführungszeichen nicht!
Strings in einfachen Anführungszeichen werden behandelt wie sie sind und es gibt nur zwei Zeichen die Escaped werden können bzw. müssen: Das einfache Anführungszeichen, mittels \
', und das Backslash, mittels \\
.
echo '\'Hello\' World'; // Output: 'Hello' World
Strings in doppelten Anführungszeichen werden interpretiert und bspw. Variablen durch ihre Werte ersetzt; zudem gibt es einige weitere Zeichen die Escaped werden müssen.
$foo = 42; echo "Foo is $foo"; // Output: Foo is 42 echo 'Foo is $foo'; // Output: Foo is $foo
Es empfiehlt sich also Strings, die nicht interpretiert werden müssen, in einfache Anführungszeichen zu setzten. Desweiteren empfiehlt es sich, statt Strings und Variablen in doppelte Anführungszeichen zu setzen und diese interpretieren zu lassen, Strings und Variablen einzeln zu verketten, da dies weniger Arbeitsspeicher verbraucht!
$foo = 42; echo "Foo is $foo"; // More memory usage echo 'Foo is ' . $foo; // Less memorg usage
Quelle: Virendra's TechTalk: PHP Double Quotes vs. Single Quotes
Darüber hinaus gibt es noch zwei andere Arten Strings in PHP zu definieren: in heredoc- und, seit PHP 5.3.0, nowdoc-Syntax.
Importieren
include() in Variable speichern
<?php ob_start(); // Start buffer include('template.php'); // Load "template.php" into the buffer $template = ob_get_contents(); // Save buffer into a variable ob_end_clean(); // End and clear buffer echo $template; // Print out the variable ?>
Weiterleitung
- redirect.php
<?php header('Location: http://example.com/'); exit(); ?>
Flexiblere Funktion
- redirect.php
<?php function redirect( $url, $permanent = false ) { header('Location: ' . $url, true, $permanent ? 301 : 302); exit(); } redirect('http://example.com/', false); ?>
CSS mit PHP generieren
Mit PHP lässt sich dynamisch CSS generieren, allerdings muss, damit der Browser es auch als CSS interpretiert, der Content-Type korrekt gesetzt werden:
<?php header("Content-type: text/css"); ?>