Donnerstag, 2. November 2017

Häufige Fehlerquellen


Wer arbeitet, macht Fehler :) Und Fehler gehören zum Lernprozess! Es gibt häufige Fehler (die selbst Profis zeitweise unterlaufen) - im Folgenden eine Auflistung und wie Sie sich auf die Suche im Quellcode machen.
PHP-Quellcode: beliebte Fehler beim programmieren in PHP
echo "Hallo Welt"echo "!";echo "wie geht es;echo "und wo stecken die Fehler";ausgabe ("Hi"; function ausgabe ( $inhalt ) {    echo $inhalt;}?>

Vergessenes Semikolon

Ein absoluter Spitzenreiter ist das vergessene Semikolon (;) - als Fehlermeldung erhalten Sie dann auch prompt wie im Beispiel gezeigt, die falsche Zeile. Es ist nicht Zeile 4, die Probleme macht, sondern 3. Und warum kommt der Fehler laut der Fehlermeldung in der vierten Zeile? Ganz einfach - durch das fehlende Semikolon war der Befehl in der dritten Zeile noch nicht abgeschlossen und geht so in der folgenden Zeile weiter!
Resultierende Fehlermeldung:
Resultierende Fehlermeldung
Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';'
in C:xampphtdocsfehler-suchen.php on line 4
Zum Vermeiden, am besten immer nur 1 Befehl pro Zeile (dann ist es übersichtlicher) und am besten sofort das Semikolon schreiben
Merke: Bei einer Fehlermeldung ab der angegebenen Zeile nach oben weg suchen!

Vergessenes zweites Anführungszeichen

Obwohl Anführungszeichen meistens im Doppelpack auftauchen und Inhalt umschließen, wird auch dort gern das zweite vergessen - Beispiel Zeile 5
Resultierende Fehlermeldung:
Resultierende Fehlermeldung
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'
in C:xampphtdocsfehler-suchen.php on line 6
Am besten sofort beide Anführungszeichen schreiben und dann erst den Inhalt zwischen den Anführungszeichen.

vergessene Abschlussklammer

Auch sehr häufig kommt das Vergessen der Abschlussklammer vor (siehe Beispiel Zeile 7).
Resultierende Fehlermeldung:
Resultierende Fehlermeldung bei vergessenen Abschlussklammern
Parse error: syntax error, unexpected ';' in C:xampphtdocsfehler-suchen.php on line 7
Das Vergessen der Abschlussklammern lässt sich am besten dadurch vermeiden, dass bei Benötigen der Anfangsklammer sofort die Abschlussklammer geschrieben wird und dann erst der Inhalt zwischen den Klammern.

automatische Hilfen

Viele PHP-Editoren unterstützen Sie automatisch dabei. Scripty z.B. setzt automatisch die Klammern und die doppelten Anführungszeichen - z. B. zu- und abschaltbar bei Scriptly unter: Optionen -> Ersetzen -> ( durch ()
Farbiger Quellcode hilft bei der Orientierung im Code. Falls Sie keine farbige Ausgabe haben sollten, können Sie diese sich selber programmieren. Erstellen Sie folgendes PHP-Programm
Farbiger Quellcode hilft: Funktionen in PHP
show_source('dateiname.php');
Die Ausgabe Ihres Quellcodes der Datei 'dateiname.php' erfolgt dann mit hervorgehobener Syntax. Die Farben des in PHP eingebauten Syntax-Highlighter werden dafür benutzt.

Arrays


Arrays sind ein wichtiges Konzept in PHP.

Ein Array ist eine geordnete Liste oder wenn es eine Tabelle.

Beispielsweise eine Liste (Tabelle) von Zahlen oder eine Liste von Texten (Strings).

Wir können mittels einem Array beispielsweise die Wochentage in einer Liste zusammenfassen, oder alle Benutzer unsere Seite.

Arrays werden gerne verwendet, um Ergebnisse von Datenbankabfragen erstmal in einer Tabelle zwischenzuspeichern um danach mit den Daten weiterzuarbeiten.

Arrays definieren

Bisher konnte jede Variable nur einen Wert speichern.

In einem Array können nun aber beliebig viele Werte gespeichert werden, auch von unterschiedlichen Typen. So kann ein PHP Array z.B. eine Zeichenkette (String/Text), eine Ganzzahl und eine Zahl mit Kommastellen enthalten und auf jeden dieser Werte kann man separat zugreifen.

Einem PHP Array wird ganz normal ein Variablenamen zugeordnet, hier wochentage, allerdings erfolgt die Zuweisung der Daten nicht einfach durch das Gleichheitszeichen, sondern danach kommt noch der Befehl: array();.

Beispiel: Wir speichern die Wochentage:

<?php
$wochentage = array("Sonntag","Montag","Dienstag",
"Mittwoch","Donnerstag","Freitag","Samstag");
echo $wochentage[1];
?>

Als Ergebnis bekommen wir Montag zurück.

Warum nicht Sonntag?

Wir bekommen nicht Sonntag zurück, denn wenn kein Schlüssel definiert wurde, dann legt php selber einen an und nummeriert die Elemente einfach durch, allerdings beginnes damit nicht mit 1 sondern mit 0.

Assoziative Arrays definieren

Bei großen Arrays wird es irgendwann umständlich zu wissen, welche Nummer/Index zu welchem Wert gehört, darum gibt es assoziative Arrays.

Assoziatives Array bedeutet, dass nicht php die Elemente durchnummeriert und so einen Schlüssel anlegt, sondern dass wir selber einen Schlüssel zuordnen.

Das heißt, man kann für einen Wert einen Schlüssel (auch Key genannt) zuweisen, dies kann z.B. eine andere Zeichenkette sein.

Die Zuweisung erfolgt per =>


Beispiel:


<?php
$wochentage = array(
"so" => "Sonntag",
"mo" => "Montag",
"di" => "Dienstag",
"mi" => "Mittwoch",
"do" => "Donnerstag",
"fr" => "Freitag",
"sa" => "Samstag");

echo $wochentage["mo"];
?>


Dies ist wieder ein Array mit unseren Namen der Wochentage.
Dabei wurde dem Schlüssel so der Wert Sonntag zugewiesen, dem Schlüssel mo dem Wert Montag und so weiter.

Der Vorteil ist, dass man jetzt bequemer auf das Array zugreifen kann:

echo $wochentage["mo"];

Ausgabe: Montag

Anstatt jetzt die Nummer/Index des Elementes anzugeben, gibt man hier den Schlüssel für das Element an, also so für Sonntagmo für Montag und sa für Samstag.

Selbstverständlich kann man nachträglich auch Werte in einem Array verändern:

<?php
$wochentage = array(
"so" => "Sonntag",
"mo" => "Montag",
"di" => "Dienstag",
"mi" => "Mittwoch",
"do" => "Donnerstag",
"fr" => "Freitag",
"sa" => "Samstag");

$wochentage["mo"] = "Monday";
echo $wochentage["mo"];
?>


Ausgabe: Monday

Weitere Werte einem Array hinzufügen

Ihr könnt einem Array bequem weitere Werte hinzufügen. Dies geht mittels [] hinter dem Array-Namen:

<?php
$mitarbeiter = array("'Hugo","Richard");
$mitarbeiter[] = "Amalia";

echo $mitarbeiter[2];
?>


Ausgabe: Amalia

Mit $mitarbeiter[] wird automatisch ein neues Element in unserem Array erstellt, und diesem wird der Wert Amalia zugewiesen.
Dies lässt sich ebenfalls auch auf leere Arrays anwenden:

<?php
$mitarbeiter = array();
$mitarbeiter[] = "Hugo";
$mitarbeiter[] = "Richard";
$mitarbeiter[] = "Amalia";

echo $mitarbeiter[0];
?>


Hier wird zuerst ein leeres Array erstellt und danach werden die Mitarbeiter hinzugefügt.

Wie viele Elemente ihr einem Array hinzufügen möchtet, ist euch überlassen.

Mit assoziativen PHP Arrays funktioniert dies ähnlich, aber wir müssen den neuen Schlüssel mit angeben:

$mitarbeiter = array(
   "Hugo" => "Hugo Seppele",
   "Richard" => "Richard Fuentes");
$mitarbeiter["Amalia"] = "Amalia  Hopfenbuehl";
echo $mitarbeiter["Amalia"];
?>
Ausgabe: Amalia Hopfenbuehl

Sollte der Schlüssel Amalia bereits vergeben sein, dann wird kein neuer Eintrag  erstellt, sondern der vorhandene Eintrag wird überschrieben.

Mehrdimensionale Arrays definieren

In einem Array kann man ein weiteres Array speichern. Und in diesem Array ein weiteres Arrray usw.

Solche Arrays nennt man dann mehrdimensionale Arrays.

Die Dimension gibt dabei an, wie Tief diese Verschachtelung geht.

Ein normales Array wäre ein 1-dimensionales Array, wenn jetzt in dem Array ein weiteres Array gespeichert ist, ist dies ein 2-dimensionales Array.

Dafür hier ein Beispiel:

<?php
$mitarbeiter = array(
  array("Klaus", "Zabel"),
  array("Arnie", "Meier"),
  array("Willi", "Brand")
);

//Daten ausgeben
echo "Vorname: ".$mitarbeiter[0][0];
echo " Nachname: ".$mitarbeiter[0][1];
?>


Ausgabe: Vorname: Klaus Nachname: Zabel

Wie wir sehen, gibt man jetzt nicht nur einen Index an, sondern zwei.

Der erste Index gibt an, welchen Mitarbeiter wir aus der Liste haben möchte, und der zweite Index ob wir den Vornamen oder den Nachnamen ausgeben möchten.

Normale Arrays und assoziativen Arrays lassen sich gut miteinander kombinieren:

$mitarbeiter = array();
$mitarbeiter[] = array("Vorname"=>"Klaus",
                       "Nachname"=>"Zabel");
$mitarbeiter[] = array("Vorname"=>"Arnie",
                       "Nachname"=>"Meier");
$mitarbeiter[] = array("Vorname"=>"Willi",
                       "Nachname"=>"Brand");
//Daten ausgeben
echo "Vorname: ".$mitarbeiter[0]["Vorname"];
echo " Nachname: ".$mitarbeiter[0]["Nachname"];
?>

Da wir jetzt in einem normalem Array ein assoziatives Array (also eins mit Schlüssel) speichern, müssen wir als zweiten Wert auch den Schlüssel für Vor/Nachname angeben.

Dies geht natürlich auch mit noch mehr Dimensionen, z.B. so:

<?php
$mitarbeiter = array();
$mitarbeiter["Klaus"]["Vorname"] = "Klaus";
$mitarbeiter["Klaus"]["Nachname"] = "Zabel";
$mitarbeiter["Klaus"]["Kinder"][] = "Klaus-Junior";
$mitarbeiter["Klaus"]["Kinder"][] = "Kind2";

//Daten ausgeben
echo "Vorname: ".$mitarbeiter["Klaus"]["Vorname"];
echo " Nachname: ". $mitarbeiter["Klaus"]["Nachname"];
echo "Er hat ";
echo count($mitarbeiter["Klaus"]["Kinder"]) . " Kinder";  

?>

Datumsausgabe mit date()

Das Datum kann in PHP in verschiedenen Formaten ausgegeben werden. Dazu wird die Funktion date genutzt.

Nach der echo-Ausgabe wird über den Punkt die Funktion datum verkettet.
Die Attribte bedeuten:

d = Tag zweistellig
m = Monat als Zahl zweistellig
y = Jahr zweistellig
Y = Jahr vierstellig

<?phpecho "<p>heutiges Datum: ". date("d.m.Y");echo "<p>heutiges Datum: ". date("d.m.y");?>


Das Ergebnis im Browser:

heutiges Datum: 23.01.2012
heutiges Datum: 23.01.12

Falls folgende Fehlermeldung kommt (was bei aktuellen PHP-Installationen ab PHP 5.1 der Fall sein wird:

 "Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in D:\xampplite\htdocs\dateinamephpprogramm.php on line x"

dann geben Sie bitte am Anfang von Ihrem Programm den Befehl date_default_timezone_set('Europe/Berlin'); für Deutschland ein:"

<?phpdate_default_timezone_set('Europe/Berlin');echo "<p>heutiges Datum: " . date("d.m.Y");?>

Aufgabe: Datum anzeigen auf verschiedene Arten

Stellen Sie das Datum auf verschiedene Arten dar - auch einmal mit Uhrzeit. Für die Informationen, wie es geht, nutzen Sie bitte php.net.

heutiges Datum: 23.01.2012
heutiges Datum: 23.Jan.12
heutiges Datum: Mon 23.Jan.2012 13:43:05

do ... while Schleife - Kontrolle der Bedingung am Ende

Wenn die Schleife auf jeden Fall einmal durchlaufen werden soll, dann ist die Konstruktion do...while die Richtige.

Beispiel do-while-Schleife


<?php
$i = 11;

do{    echo $i;         // es wird $i ausgegeben    
echo "";     
$i++;                  // Wert wird um 1 erhoeht
   } 
while ($i <= 10);
?>

Als Ergebnis erhalten Sie die Ausgabe 11 und die Schleife bricht ab, da die Bedingung am Ende der Schleife erfüllt ist.

Da die Abfragen erst am Ende kommt, wird die Schleife mindestens einmal durchlaufen.



do ... while Schleifen können auch mittendrin unterbrochen werden, wenn Bedingungen erfüllt sind. Dazu gibt es den break-Befehl.

Unser Bespiel von oben wird erweitert:

do-while-Schleife mit Abbruch-Bedingung


<?php
$i = 11;do{ if ( $i > 10 ) { echo "i ist bereits groesser als 10"; break; } echo $i; // es wird $i ausgegeben echo ""; $i++; // Wert wird um 1 erhoeht} while ($i <= 10);?>



Ausgabe: i ist bereits größer als 10


Derselbe Vorgang als for-Schleife



<?phpfor ($i = 1;$i <= 10; $i++){echo $i . "";}?>

Ausgabe:

1
2
3
4
5
6
7
8
9
10
Auch bei der for-Schleife gibt es die Möglichkeit, die Schleife abzubrechen.

Möglichkeiten und Grenzen von PHP


Hinter zahlreichen Anwendungen im Internet steckt PHP. Sehen Sie in der URL im Browser ein .php - da steckt eine PHP-Anwendung.
Für einen ersten Eindruck eine kleine (und unvollständige) Aufzählung unterschiedlicher PHP-Anwendungen:
  • Besucherzähler
  • Gästebücher
  • Diskussionsforen
  • Bilderdienste
  • Umfragen
  • Formulare mit Verarbeitung von Kontaktdaten
  • Chats
  • Wikis
  • Blogs (z. B. WordPress)
  • und vieles mehr ...

Wo PHP dahintersteckt, muss es nicht unbedingt sichtbar sein

PHP muss nicht unbedingt als Dateiendung .php auftauchen, aber trotzdem kann es im Hintergrund seine Arbeit verrichten. Das Content-Management-System (CMS) mit dem Namen TYPO3 z. B. ist ein PHP-Programm. Oft sieht man damit erstellte Internetauftritte, die ihre Einzelseiten mit „index.php?id=x“ haben. Das ist aus verschiedenen Gesichtspunkten her schlecht. Insbesondere ist somit für Suchmaschinen ersichtlich, dass es sich nicht um eine statische Seite handelt und deshalb u. U. nicht mit einer dauerhaften Information gerechnet werden kann.
Dagegen gibt es sehr gute technische Umsetzung von PHP-Typo3-Seiten - da kann man außer dem kleinen Hinweis im Quellcode „“ nichts finden, das zeigt, dass hier TYPO3 verwendet wurde. So sollte das auch sein.
Es gibt drei Hauptgebiete, in denen PHP-Skripte genutzt werden.
  • Serverseitige Programmierung. Dies ist das traditionelle und auch Hauptfeld von PHP. Sie benötigen drei Dinge, um damit arbeiten zu können: Den PHP-Parser (CGI oder Server-Modul), einen Webserver und einen Webbrowser. Sie müssen einen Webserver laufen lassen, der mit einer PHP-Installation verbunden ist. Sie können auf die Ausgabe Ihres PHP-Programms mittels eines Webbrowsers zugreifen, der die Seite mithilfe des Servers darstellt. Dieses gesamte Szenario können Sie auf Ihrem heimischen Rechner laufen lassen, wenn Sie erst einmal mit PHP-Programmierung experimentieren wollen. 
  • Kommandozeilenprogrammierung. Es ist auch möglich PHP-Skripte schreiben, die ohne einen Server oder Browser arbeiten können. Sie benötigen dafür nur den PHP-Parser. Die Art der Nutzung ist ideal für Programme, die regelmäßig mitels cron (auf *nix oder Linux) oder dem Task Scheduler (unter Windows) ausgeführt werden. Die Skripte können außerdem verwendet werden, um einfache Textprozessierung auszuführen. 
  • Schreiben von Desktop-Applikationen. PHP ist wahrscheinlich nicht die allerbeste Sprache, um Desktop-Anwendungen mit grafischer Oberfläche zu schreiben, aber wenn Sie PHP sehr gut kennen und einige weiterführende PHP-Features in Ihren clientseitigen Applikationen nutzen möchten, können Sie PHP-GTK nutzen, um derartige Programme zu schreiben. Auf diese Art haben Sie auch die Möglichkeit, plattformübergreifende Applikationen zu schreiben. PHP-GTK ist eine Erweiterung von PHP, die in der Hauptdistribution nicht enthalten ist. 
PHP kann auf allen gängigen Betriebssystemen verwendet werden, inkl. Linux, vielen Unix-Varianten (inkl. HP-UX, Solaris und OpenBSD), Microsoft Windows, Mac OS X, RISC OS, und wahrscheinlich anderen. PHP unterstützt auch die meisten der heute gebräuchlichen Webserver. Dies umfasst Apache, Microsoft Internet Information Server, Personal Web Server, Netscape- und iPlanet-Server, Oreilly Website Pro-Server, Caudium, Xitami, OmniHTTPd und viele andere. Für den Großteil der Server bietet PHP ein eigenes Modul, für die anderen, die den CGI-Standard unterstützen, kann PHP als CGI-Prozessor arbeiten.
So haben Sie die Freiheit, PHP auf dem Betriebssystem und dem Webserver Ihrer Wahl laufen zu lassen. Weiterhin können Sie je nach Vorliebe prozedural oder objektorientiert programmieren oder eine Mischung aus beidem verwenden. Auch wenn in PHP 4 noch nicht jedes Standard-OOP-Feature implementiert ist, sind viele Codebibliotheken und große Applikationen (unter anderem die PEAR-Bibliothek) bereits ausschließlich objektorientiert programmiert. Mit PHP 5 werden die objektorientierten Schwächen von PHP 4 behoben und ein vollständiges Objektmodell eingeführt.
Mit PHP sind Sie nicht auf die Ausgabe von HTML beschränkt. Seine Fähigkeiten umfassen auch das dynamische Generieren von Bildern, PDF-Dateien und Flashanimationen (mittels libswf und Ming). Sie können auch leicht jede Art von Text, wie XHTML oder irgendeine andere XML Datei, ausgeben. PHP kann diese Dateien automatisch generieren und im Dateisystem speichern anstatt diese nur auszugeben. Auf diese Weise lässt sich ein serverseitiger Cache Ihrer dynamischen Inhalte erstellen.
Vielleicht die größte und bemerkenswerteste Stärke von PHP ist seine Unterstützung für eine breite Masse von Datenbanken. Eine datenbankgestützte Website zu erstellen ist unglaublich einfach. Die folgenden Datenbanken werden zur Zeit unterstützt:
  • Adabas D
  • dBase
  • Empress
  • FilePro (nur Lesezugriff)
  • Hyperwave
  • IBM DB2
  • Informix
  • Ingres
  • InterBase
  • FrontBase
  • mSQL
  • Direct MS-SQL
  • MySQL
  • ODBC
  • Oracle (OCI7 und OCI8)
  • Ovrimos
  • PostgreSQL
  • Solid
  • SQLite
  • Sybase
  • Velocis
  • Unix dbm
Wir haben auch eine Extension zur Datenbankabstraktion (names PDO), welche Ihnen die transparente Verwendung irgendeiner von dieser Erweiterung unterstützten Datenbank erlaubt. Desweiteren unterstützt PHP ODBC, den Open Database Connection Standard, mit welchem Sie sich mit jeder anderen Datenbank verbinden können, die diesen weltweiten Standard unterstützt.
PHP unterstützt auch die Kommunikation mit anderen Services, welche Protokolle wie LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (auf Windows) und unzählige andere unterstützen. Sie können auch einfache Netzwerk-Sockets öffnen und unter Verwendung irgendeines anderen Protokolls kommunizieren. PHP unterstützt auch WDDX (Web Distributed Data Exchange) zum Austausch komplexer Daten zwischen Programmiersprachen. Da wir gerade vom Zusammenwirken sprechen: PHP unterstützt auch die Instantiierung von Java-Objekten und deren transparente Verwendung als PHP-Objekte. Sie können auch unsere CORBA-Erweiterung verwenden, um auf entfernte Objekte zuzugreifen.
PHP verfügt über äußerst hilfreiche Textverarbeitungsfunktionen, von den regulären Ausdrücken (POSIX erweitert oder Perl) bis zum Parsen von XML-Dokumenten. Für den Zugriff und das Parsen von XML-Dokumenten unterstützt PHP 4 die Standards SAX und DOM. Sie können außerdem die XSLT-Extension verwenden, um XML-Dokumente zu transformieren. PHP 5 vereinheitlicht all diese XML-Extensions auf der soliden Basis der libxml2-Bibliothek und erweitert diese Funktionalität durch die hinzugefügte Unterstützung von SimpleXML and XMLReader.
Es gibt noch viele andere interessante Erweiterungen, wie mnoGoSearch für Suchmaschinen, die IRC-Gateway-Funktionen, viele Komprimierungswerkzeuge (gzip, bz2, zip), Kalenderumrechnung, Übersetzung uws.

Grenzen von PHP

Auch PHP hat seine Grenzen - z. B. werden keine grafiklastigen Actionspiele wie "Lara Croft" mit PHP entwickelt - dafür gibt es andere Programmiersprachen.
PHP läuft i.d.R. im Produktivbetrieb (d. h. wenn man es professionell will und keine Probleme haben möchte) auf einem Apache Server.
PHP lernen kann aber problemlos auf einem Windows oder Mac-System erfolgen. Die entsprechenden notwendigen Programme werde im Kapitel 4 vorstellen.

Werkzeuge um mit PHP zu arbeiten


Folgende Dinge (neben der eigenen Motivation) sind nötig, um mit PHPH zu können:
  • PHP
  • Webserver (i.d.R. Apache)
  • Text-Editor, um den Quellcode zu erfassen
  • FTP-Programm für das Übertragen zum Webserver
Falls man noch keinen Server auf dem eigenen Rechner hat, dann lädt man die Datei einfach auf einen Testbereich in seinem Webspace vom Webhoster hoch und führt sie dort aus.
Es empfiehlt sich einen Texteditor zu verwenden, der auch einen Syntaxchecker hat wie gPHPedit um nicht ständig Abstürze zu bekommen, nur weil eine Kleinigkeit fehlt. PHP sendet dann oft keine Fehlermeldung sondern zeigt nur einen leeren Bildschirm an.
Neben gPHPedit, das es unter Linux kostenlos gibt, gibt es noch folgende Editoren:

Editor vom Betriebssystem

Für die absoluten Puristen (oder für den Notfall) geht der im Betriebssystem mitgelieferte Editor.
Beim Editor von Windows müssen Sie beim Speichern darauf achten, dass Sie den Dateinamen "irgendwas.php" in Anführungszeichen schreiben. Sonst ergänzt der Editor den Dateinamen um ein .txt und die fertige Datei heißt dann "irgendwas.php.txt" und wird vom Webserver nicht als PHP-Datei erkannt!

Scriptly

Sehr zu empfehlen ist der kostenlose Editor Scriptly von Webocton, der laufend weiterentwickelt wird. Eine Anleitung zur Konfiguration von Scriptly zum bequemen PHP-Programmieren ist hier vorhanden. Die aktuelle Version von Scriptly können Sie unter www.scriptly.de herunterladen.
Für mehr Komfort gibt es Editoren, die den Quellcode automatisch farbig anzeigen (was eine schnelle Orientierung ermöglicht) und z. B. Codeergänzungen vorschlagen.

Weaverslave

Den Editor Weaverslave finden Sie unter www.weaverslave.ws/ - letzte Version ist vom Dezember 2005.

Zend Studio

Ein sehr gutes Produkt kommt aus dem Haus Zend (Entwickler von PHP) mit dem Zend Studio. Dieses läuft auf verschiedenen Betriebssystemen, da es mit Java programmiert wurde.
Das Ganze hat auch seinen Preis - mehr Informationen und eine Testversion finden Sie unter: www.zend.com/de/

Verzeichnis auslesen in php

Je nach Aufgabenstellung ist es praktisch, den Inhalt eines Verzeichnisses auszulesen.

Dazu geht man folgenden Weg

Das gewünschte Verzeichnis wird in einer Variablen hinterlegt, im folgenden Beispiel in der Variable $verzeichnis

Dann wird überprüft, ob es sich wirklich um ein Verzeichnis handelt.

Ist es ein Verzeichnis wird über opendir ein Handle erstellt, mit dem dann weiter gearbeitet wird.

Jetzt wird das Verzeichnis mit readdir in einer while-Schleife durchlaufen, bis das Verzeichnisende erreicht ist.

Wir erhalten von der Funktion ein false als Rückgabewert und beenden die while-Schleife.

Innerhalb der Schleife können wir nun mit der Funktion filetype testen, ob es sich um eine Datei (file) oder um ein Unterverzeichnis (dir) handelt.

Im Beispiel wird der Inhalt des aktuellen Verzeichnisses ausgegeben.

PHP-Quellcode: 

Verzeichnis einlesen mit PHP

<?php
$verzeichnis = "."; // Der Punkt steht für das Verzeichnis in dem das php Skript ist
echo "<ol>";

if ( is_dir ( $verzeichnis )) // Text, ob ein Verzeichnis angegeben wurde
{
    
    if ( $handle = opendir($verzeichnis) ) // öffnen des Verzeichnisses
    {
        
        while (($file = readdir($handle)) !== false) // einlesen der Verzeichnisses
        {
            echo "<li>Dateiname: ";
            echo $file;
 
            echo "<ul><li>Dateityp: ";
            echo filetype( $file );
            echo "</li></ul>\n";
        }
        closedir($handle);
    }
}
echo "</ol>";
?>

Interessant wird die Weiterverarbeitung der Dateinamen.

Dazu eignen sich besonders Array - siehe das Kapitel Arrays.

Mit diesem Script kann man zum Beispiel eine Bildergallerie anlegen.

Was ist PHP?




PHP (rekursives Akronym für PHP: Hypertext Preprocessor) ist eine weit verbreitete und für den allgemeinen Gebrauch bestimmte Open Source-Skriptsprache, welche speziell für die Webprogrammierung geeignet ist und in HTML eingebettet werden kann.

Anstatt ein Programm mit vielen Anweisungen zur Ausgabe von HTML zu schreiben, schreibt man etwas HTML und bettet einige Anweisungen ein, die irgendetwas tun (wie hier "Hallo, ich bin ein PHP-Skript!" auszugeben).

<?php 
echo "<p>Hallo,  ich bin ein PHP Script</p>";
?>

Der PHP-Code steht zwischen speziellen Anfangzeichen <?php  und Abschluss-Verarbeitungsinstruktionen und ?>, mit denen man in den "PHP-Modus" und zurück wechseln kann.

Die einzigste Vorraussetzung um HTML und PHP zu mischen ist, die Datei nicht mit der Endung .hmtl sondern mit .php abzuspeichern.

PHP unterscheidet sich von clientseitigen Sprachen wie Javascript dadurch, dass der Code auf dem Server ausgeführt wird und dort HTML-Ausgaben generiert, die an den Client gesendet werden.

Der Client erhält also nur das Ergebnis der Skriptausführung, ohne dass es möglich ist herauszufinden, wie der eigentliche Code aussieht.

Sie können Ihren Webserver auch anweisen, alle Ihre HTML-Dateien mit PHP zu parsen, dann kann kein Bösewicht ihren Code ohne weiteres kopieren.

Das Beste an der Verwendung von PHP ist, dass es für Neueinsteiger extrem einfach ist, aber auch einen riesigen Funktionsumfang für den professionellen Programmierer bietet.

Sie können einsteigen, und binnen weniger Stunden bereits mit dem Schreiben von einfachen Skripten beginnen.

Ich nehme sehr viel php her. Wenn ich eine Webseite erstelle, dann benutze ich php dafür, die html-Dateien zusammenzubinden.

Das heißt, ich programmiere einen Kopf, einen Inhaltsteil und einen Fussteil in php und binde die entsprechenden html-Dateien mit einem include Befehl ein.

Das hat den Vorteil, dass ich den Rahmen der Seite fertig programmiert habe und nicht ständig darin herumwurschteln muss und Änderungen sehr schnell vornehmen kann.

Außderdem lädt der Webbrowser nicht ständig die komplette Seite neu, was dazu führt, dass meine Seite ruhiger wirkt und der Besucher sich so wohler fühlt.

Die ganzen Remote-Systeme wie Wordpress und Dolibarr  sind auf diese Art programmiert.

Schaut mal rein, da ist überall php Code der mit HTML gemischt wird.

Wie läuft PHP

PHP ist eine Scriptsprache, die ihre Heimat i.d.R. auf einem Webserver hat. Wird nun eine Internetseite aufgerufen, die ein PHP-Programm darstellt, wird das PHP-Programm auf dem Server ausgeführt und der Besucher erhält nur die Ausgabe (meistens HTML) zurück.

Dadurch ist die Ausführung der PHP-Programm eine sehr gute Sache, da diese nicht abhängig vom Computer des Surfers ist (im Gegensatz zu JavaScript, das auf dem Computer des Surfers aufgeführt wird).

PHP wird geparst

PHP-Programme werden im Klartext erfasst (also kann jeder beliebige Text-Editor eingesetzt werden). Erst der Server setzt diesen Klartext dann ein Programm um und führt es aus (korrekt spricht man von parsen).

Ablauf einer Entwicklung

1. Schritt: Zuhause (oder in Ihrer Firma) entwickeln Sie ein PHP-Programm
Dort benötigen Sie als Minimalausstattung einen Computer, auf dem ein Webserver (Apache) mit PHP läuft. Es wird empfohlen einen speziellen php-Editor zu benutzen, der auch einen Syntaxchecker hat, wie gphpedit

2. Schritt: die fertige Anwendung wird auf den Webserver bei einem Hoster übertragen, der Ihren Programm auf einem Webserver einen Platz bietet.


3. Schritt: Über das Internet haben alle (wenn gewünscht) Zugriff auf Ihre Anwendung.

Suchmaschinenoptimierung

  Was versteht man unter Suchmaschinenoptimierung (SEO)   Mit dem Begriff Suchmaschinenoptimierung werden alle Aktivitäten bezeichnen, die...