Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:start

PHP

Hello World

helloworld.php
<?php
echo "Hello World!\n";
?>

"Hello World"-Beispiel bei GitHub

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);
?>

Quelle: Stack Overflow: How to make a redirect in PHP?

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");
?>

Tutorials

Kostenpflichtige Tutorials

php/start.txt · Zuletzt geändert: 2016-07-03 14:41 von a.kamola