Bit-String-Matrix erzeugen
Wir möchten eine Matrix erzeugen, die für n Variablen alle möglichen Bitfolgen in ihren Zeilen enthält. Anwendung findet die Matrix zum Beispiel, wenn eine Wahrheitstabelle für einen gegeben booleschen Ausdruck für alle möglichen Zustände der Eingangsvariablen erzeugt werden soll.Hilfreich ist es, wenn man sich zunächst überlegt, wie viele Kombinationen an Bitstrings bei n Variablen erzeugt werden müssen und wie die Matrix zum...
Codeschnipsel | letzte Änderung am 14. April '11 um 21:50 Uhr
Term mit PHP parsen
Wir möchten einen einfachen mathematischen Term berechnen lassen, den uns ein User über ein Formular übermittelt hat. Das Problem: Der Term liegt als String vor und wird vom Interpreter nicht geparst. Der Term wird so, wie er übermittelt wurde, auch ausgegeben. In diesem Tutorial untersuchen wir nun verschiedene Möglichkeiten einfache Terme, die neben den Grundoperatoren +, -, * und / auch Potenzen und runde Klammern enthalten können,...
Tutorials | letzte Änderung am 07. Oktober '10 um 21:00 Uhr
Datenbankklasse programmieren
Die Fehlerbehandlung wird um einiges einfacher, wenn wir sämtliche Datenbankfunktionen in einer Klasse kapseln. Durch Exceptions haben wir eine Möglichkeit, Fehlermeldungen an geeigneter Stelle zu behandeln.Bei folgendem Code handelt es sich um eine sehr einfache Datenbankklasse, die aber durchaus ihren Zweck erfüllt. Bei auftretenden Fehlern werden Ausnahmen geworfen, die wir abfangen und auswerten können. Der Besucher unserer Website...
Tutorials | letzte Änderung am 09. August '10 um 21:51 Uhr
Reguläre Ausdrücke für BBCodes
Für Foren oder Gästebücher möchte man es seinen Usern häufig erlauben, bestimmte Formatierungen am Text vornehmen und Bilder oder Weblinks posten zu können.BBCode (engl. Bulletin Board Code) wird im Allgemeinen mit eckigen Klammern geschrieben. Über BBCodes lassen sich HTML-Tags wie <a> oder <h1> beliebig nachbilden, wodurch es möglich wird, eine Schnittstelle zwischen Usereingaben und tatsächlicher Darstellung anzubieten....
Tutorials | letzte Änderung am 27. Juli '10 um 15:25 Uhr
Beispiel Decorator Pattern
Anders als Vererbung bietet dieses Design Pattern die Möglichkeit, neue Funktionen zur Laufzeit des Programms Objekten hinzufügen zu können.Als kleines Anwendungsbeispiel habe ich mir die Überschriften von HalloPHP gegriffen. Eine Überschrift wird also im Folgenden als ein Objekt einer Klasse betrachtet. Wie nur unschwer zu erkennen ist, sind die Anfangsbuchstaben der Überschriften etwas größer und andersfarbig. Genau diese Eigenschaft...
Tutorials | letzte Änderung am 24. Juli '10 um 09:58 Uhr
Text zwischen Anführungszeichen auslesen
Aus einer beliebigen Zeichenkette sollen alle Strings herausgefiltet werden, die zwischen einfachen oder doppelten Anführungszeichen stehen.Bei unserem regulären Ausdruck spielen Rückbezüge (engl. back references) eine wichtige Rolle. Zunächst einmal selektieren wir ein Anführungszeichen (ob Single- oder Doublequote ist dabei egal) und wissen, dass alle Zeichen, die zwischen den Anführungszeichen stehen können, von unserem selektierten...
Reguläre Ausdrücke | letzte Änderung am 21. Juli '10 um 21:54 Uhr
Alle Checkboxen aktivieren/deaktivieren
Um die Bedienung bei der Auswahl mehrerer Einträge über Checkboxen zu vereinfachen, sollen alle Checkboxen gleichzeitig aktiviert und deaktiviert werden können.Über eine weitere Checkbox soll das Aktivieren beziehungsweise Deaktivieren der Checkboxen ermöglicht werden!Die Javascript-Funktionerwartet als Parameter die ID des Formulars, innerhalb dessen die Checkboxen angehakt werden sollen und die ID der Checkbox, die als Vergleich dient, um...
Codeschnipsel | letzte Änderung am 21. Juli '10 um 18:30 Uhr
Datenbankeintrag löschen
Wir möchten bestimmte Datenbankeinträge über einen Hyperlink aus der Datenbank löschen können.Wir haben bereits alle Datenbankeinträge untereinander aufgelistet und möchten nun über einen simplen Hyperlink einen Eintrag zum Löschen auswählen. Unsere Datei sieht zunächst noch so aus:. Dabei ist es im nächsten Schritt wichtig, dass jeder Eintrag eindeutig identifiziert werden kann. Dazu benötigt unsere Datenbanktabelle, die unsere...
Tutorials | letzte Änderung am 19. Juli '10 um 23:15 Uhr
Thumbnails mit fester Größe erstellen
Um ein einheitliches Layout z.B. für Galerien zu gewährleisten, möchten wir unsere Vorschaubilder (Thumbnails) auf eine einheitliche Größe skalieren. Da nicht alle Bilder im selben Format vorliegen, bleibt es allerdings nicht aus, dass Teile des Bildes abgeschnitten werden müssen.Das Script arbeitet mit den Image-Funktionen der GD-Bibliothek, die seit PHP 4.3 in PHP enthalten ist oder auch manuell installiert werden kann: .
Codeschnipsel | letzte Änderung am 09. Juli '10 um 19:16 Uhr
Phänomen Backslash im regulären Ausdruck
Der Backslash stellt in vielen Bereichen eine Sonderfunktion dar. So dient er zum Escapen von Single- oder Doublequotes innerhalb eines Strings und leitet Escape-Sequenzen ein. Innerhalb eines regulären Ausdrucks haben viele Zeichen eine besondere Bedeutung und müssen durch einen Backslash escaped werden, möchte man nach ihnen suchen.Möchte man aber nach einem Backslash innerhalb eines regulären Ausdrucks suchen, reicht das alleinige...
Nice to know | letzte Änderung am 29. Juni '10 um 17:52 Uhr
Double Content vermeiden
Werden identische Inhalte unter unterschiedlichen Adressen durch Suchmaschinenbots gefunden, werden diese in der Regel schlechter bewertet und tauchen in der Ergebnisliste der jeweiligen Suchmaschine erst weiter unten auf.Um eine doppelte Indexierung seiner Website bei Suchmaschinen zu vermeiden, ist es ratsam, Subdomains oder Andere, die auf die selbe Internetpräsenz verweisen, auf eine gewünschte Domain weiterzuleiten. Dies geschieht im...
Codeschnipsel | letzte Änderung am 26. Juni '10 um 17:06 Uhr
PHP-Farbwähler (ColourPicker)
Bei diesem Codeschnipsel handelt es sich lediglich um eine Implementierung zur Erzeugung der Oberfläche eines Farbwählers in PHP. Die 256x256 Pixel große Grafik wird pixelweise Zeile für Zeile erzeugt. Die Berechnung der Farbwerte der einzelen Pixel übernimmt das Script. Ein Vorschaubild, für den im Script (siehe unten) definierten Farbwert, ist unter folgendem Link zu finden: . Verwendet werden kann die Grafik zum Beispiel für die...
Codeschnipsel | letzte Änderung am 25. Juni '10 um 22:05 Uhr
Text nach bestimmter Länge und Wort abschneiden
Möchte man seinen Usern eine kurze Textvorschau von wenigen Zeichen anbieten, lässt sich ein String sehr leicht mit der Funktion kürzen. Etwas unschön und unprofessionell sieht es dann doch aber aus, wenn der Text mitten in einem Wort abgeschnitten wird. Um dies zu verhindern, kann der gekürzte String nochmals am letzten, noch enthaltenen Leerzeichen gekürzt werden.
Codeschnipsel | letzte Änderung am 03. Juni '10 um 16:22 Uhr
Mit isset() auf einen Arrayindex prüfen
Anstelle von wird gerne auf die Funktion zur Prüfung eines Arrayindex' zurückgegriffen, da diese Funktion performanter ist. Ein Problem, das in diesem Zusammenhang auftreten kann, entsteht z.B. bei folgendem Code:Die Bedingung ist erfüllt, was daran liegt, dass PHP Strings auf 0 castet. Außerdem kann jeder String, in diesem Fall ist es "bar", wie ein Array angesprochen werden:Der Index ist also gesetzt, wodurch die Bedingung...
Nice to know | letzte Änderung am 03. Mai '10 um 18:09 Uhr
Doppeltes http:// oder Re: entfernen
Für ein Benutzerprofil möchten wir dem Besucher erlauben, die Adresse seiner Website anzugeben. Für das Eingabefeld geben wir dem User eine Hilfe über das - Attribut vor:Im Feld wird also bereits das für die Url angezeigt. Unglücklicherweise kopiert der User lediglich die Url aus der Addresszeile seine Browsers und hängt eine zweite Protokollangabe an die Vorgabe im Eingabefeld. Die resultierende Adresse sähe also beispielsweise so aus...
Reguläre Ausdrücke | letzte Änderung am 25. April '10 um 10:55 Uhr
Kontaktformular erstellen
In diesem Tutorial werden wir eine fertige Mailerklasse - den Swift Mailer in der Version 4.0.6 - verwenden, um uns Arbeit beim Versenden der Email zu sparen. Die aktuellste Version der Klasse kann unter heruntergeladen werden. Das Versenden von HTML-Mails und das Hinzufügen von Anhängen ist alles bereits über die Mailerklasse möglich. Weitere Informationen sind auf der zugehörigen Website und unter zu finden. Zunächst einmal...
Tutorials | letzte Änderung am 20. April '10 um 16:25 Uhr
Sonderzeichen filtern
Für ein Benutzerverwaltungssystem haben wir ein Registrierungsscript geschrieben. Da wir suchmaschinenfreundliche Urls erzeugen möchten, müssen wir sicherstellen, dass bestimmte Sonderzeichen nicht für den Username verwendet werden dürfen. Als erstes müssen wir überlegen, welche Zeichen wir zulassen und welche wir aussschließen möchten. Folgende Zeichen möchten wir zulassen: Ausschließen wollen wir alle übrigen Sonderzeichen und...
Reguläre Ausdrücke | letzte Änderung am 12. April '10 um 17:49 Uhr
Eingabe auf Datum prüfen
Wir möchten unsere User ein Datum, z.B. das Geburtsdatum, eingeben lassen, müssen dabei aber voraussetzen, dass ein bestimmtes Format eingehalten wird, damit wir das Datum auch als solches auswerten und weiterverarbeiten können. Um die Datumseingabe eines Users auf ein bestimmtes Format und auf ein echtes Datum zu überprüfen, nutzen wir eine Kombination aus einem regulären Ausdruck und der Funktion checkdate(). Als Datumsformat setzen...
Reguläre Ausdrücke | letzte Änderung am 10. April '10 um 14:49 Uhr
Heredoc und Short-Tags
Die Heredoc-Syntax arbeitet nur ordentlich, wenn man auf Short-Tags verzichtet (getestet unter PHP Version 5.3.1). Folgender Code erzeugt eine unerwartete Ausgabe. Ohne HTML-Tags erhalten wir bei diesem Code sogar gar keine Ausgabe.Die Lösung ist, einfach anstelle von Short-Tags die Long-Tags zu verwenden. Es ist im Übrigen sowieso am besten, komplett auf Short-Tags zu verzichten, da diese über die Serverkonfiguratoin ausgeschaltet werden...
Nice to know | letzte Änderung am 09. April '10 um 14:35 Uhr
Eine Zahl als Sessionindex
Der Zugriff auf eine Session gestaltet sich im Allgemeinen wie der Zugriff auf ein normales Array.Möchte man aber numerische Indizes verwenden, macht einem PHP einen Strich durch die Rechnung. Bei folgendem Code erhält man eine interessante Fehlermeldung.Wenn man sich nun daran erinnert, was man ganz zu Beginn seiner PHP-Karriere über Variablennamen gelernt hat, kann man sich dies vielleicht erklären. Variablennamen dürfen nicht mit Zahlen...
Nice to know | letzte Änderung am 05. April '10 um 00:00 Uhr
Dateien nach Datum sortieren
Es ist mit PHP sehr einfach Dateien aus einem Verzeichnis auszulesen und sich diese dann in einer Liste ausgeben zu lassen. Doch wie sortiert man diese Dateien dann zum Beispiel nach dem Datum, an dem die Datei zuletzt geändert wurde? Um dieses Problem zu lösen bietet sich die Funktion an! Sämtliche Dateien, samt Änderungszeitpunkt, speichern wir dazu in einem Array und übergeben es dann unserer Sortierfunktion!Die Sortierung erfolgt...
Codeschnipsel | letzte Änderung am 04. April '10 um 12:11 Uhr