Modul web.pm
Dieses Perl-Modul enthält einige hilfreiche Routinen für die Erstellung von Webdokumenten und
zur Verarbeitung von CGI-Programmen. Das Modul basiert auf ähnliche Routinen aus den Modulen
CGI, HTML, HTTP und
den Libraries cgi-lib.pl
und cgi-library.pl. Diese sollen durch das
Modul web nicht ersetzt, aber ergänzt oder verbessert werden.
Ein Ziel bei der Erstellung des Moduls, war, die Routinen so einfach wie möglich zu machen,
damit auch Anfänger leicht damit umgehen können, ohne vorher viel mehr als die Grundlagen
der Perl-Programmierung beherrschen zu müssen.
Source Code
| web - Version 1.45 | |
| web.pm [Direkter Download] |
Das Modul web |
| readme.txt [Direkter Download] |
Informationen zur Installation |
| web-1.45.tar.gz [Direkter Download] |
Modul, gepackt in tar und gz. (Entpacken via tar -xzf web-1.45.tar.gz) |
| (Zum Download clicken Sie auf den Link und betätigen Sie 'Save as..' nach dem Laden, oder gehen Sie mit der Maus auf den Link und nutzen Sie die 'Save Link as..'-Funktion Ihres Browsers.) | |
Installation
Kopieren Sie die Datei web.pm in das Perl Library Verzeichnis (z.B. /usr/perl5/lib) oder in
ein eigenes Verzeichnis für Libraries und Module.
Dann binden Sie das Modul mit den folgenden Aufruf in ihre Programme ein:
use web;
Sollten Sie keine Rechte haben, die Datei in das Perl Library Verzeichnis zu kopieren, rufen Sie das Modul folgendermaßebn auf:
use lib '/pfad/zu/dem/modul'; |
Funktionen
Add_Days_to_Date() |
Addiert eine Zahl von Tagen zu einem Datum. Erstes Argument ist das Datum, wie "1.2.2000", zweites Argument die Zahl der zu addierenden Tage, wie "28". Das Ergebnis hat Datumsformat, wie "1.3.2000" in diesem Fall. |
Check_Name() |
Löscht alle Sonderzeichen aus einem String, mit dessen Hilfe ein Perlprogramm in einem System- oder open()-Aufruf zu ungewollten Aktionen gezwungen werden kann. |
Fehlermeldung() |
Gibt eine Fehlermeldung aus. Dieser Funktionen läßt sich eine Layout-Datei übergeben, in der angegeben ist, auf welche Weise die Fehlermeldung ausgegeben wird. |
GetPassedDaysbyMonth() |
Liefert die Zahl der Tage zurück die vergangen sind bis zum Erreichen der eingegebenen Monatsnummer. |
GetSentence() |
Liefert auf eine Wortsuche in einem Text den Satz ersten Satz zurück, in dem sich das Wort befindet. |
GetYearDay() |
Berechnet aus einem gegebenen Datum, welcher Tag des laufenden Jahres es ist. |
GetWeekDay() |
Berechnet aus einem gegebenen Datum den Wochentag. |
GetDatebyYday() |
Berechnet aus einem gegebenen Jahrestag das dazugehörige Datum. Z.B. die Eingabe 32 (im Jahr 1999) führt zum Ergebnis 1.2.1999. |
Get_Seconds() |
Gibt aus einer eingegebenen Zeit die Zahl der Sekunden wieder, die seit Mitternacht vergangen sind. |
HtmlTop() |
Gibt einen Satz an Default-HTML-Tags für den Kopf eines HTML-Dokumentes zurück. Als Argument sollte der Titel des Dokumentes übergeben werden. |
HtmlBot |
Gibt einen Satz an Default-HTML-tags für das Ende eines HTML-Dokumentes zurück. |
isDatum() |
Überprüft die Eingabe nach korrekter Datums-Syntax (TT.MM.YYYY). |
isIP() |
Überprüft die Eingabe nach korrekter IP-Syntax. |
isLeapYear() |
Liefert TRUE, wenn das Argument ein Schaltjahr ist. |
isURL() |
Überprüft die Eingabe nach korrekter URL-Syntax. |
isMail() |
Überprüft die Eingabe nach korrekter Mail-Syntax. |
isZeit() |
Überprüft die Eingabe nach korrekter Zeit-Syntax (HH:MM:SS). |
NLock() |
Setzt ein Dateilock ohne die Perlfunktion flock(). Im Gegensatz zu flock() arbeiten NLock() und NUnlock() jedoch über NFS-Grenzen hinweg, da ein atomarer Link als Lock gesetzt wird. Zusätzlich zum reinen Locking besitzt dieser ein Alterungsmechanismus, der dafür sorgt, daß ein Dateilock, welcher älter ist als eine vorgegebene Anzahl von Sekunden, beseitigt wird. Nlock() gibt 1 bei Erfolg, 0 bei Mißerfolg zurück. |
NUnlock() |
Beseitigt ein durch NLock() gesetztes Dateilock. |
NUnlockAll |
Beseitigt alle Locks, die mit NLock() gesetzt wurden. |
PrintHeader |
Gibt den Content-type "text/html" zurück. Die Funktion PrintHeader() kann nunmehr auch optional Cookies
zurück- oder neu setzen.Aufrufparameter:
|
ReadParse |
Ließt Eingaben aus dem STDIN und/oder der Environment-Variable QUERY_STRING ein, wandelt die Netz-Sonderzeichen um und schreibt die Daten in einem Hash aus. |
Read_Parafile() |
Liest eine Standard-Unix-Parameterdatei ein und schreibt die Daten in einen Hash aus. |
ReadLayout() |
Ließt eine Datei und gibt diese in einem Array zurück. |
Redirect() |
Läßt den Server eine Redirection zu einer anderen URL durchführen. |
RemoveHTML() |
Beseitigt alle HTML-Tags und ersetzt HTML-Sonderzeichen. |
ReturnFlagContent() |
Gibt aus einem eingebenen HTML-Text und einem Tag als Argument all das zurück, was im Text zwischen den Beginn des Tags und dessen Ende liegt. |
ReplaceText() |
Ersetzt in einem vorgegebenen Quelltext #TEXT# mit einem anderen Text. Sofern im Quelltext viele Zeilenumbrüche vorkommen, ist diese Routine schneller als normales Suchen und Ersetzen mit Regular Expressions. |
WriteLog() |
Schreibt Text mitsamt Datum und Rechneradresse in eine vorgegebene Datei. |
Änderungen / Updates
| Version 1.36 - 1.45 |
Diverse Bugfixes und Verbesserung der Codeeffizienz. Es wurden kleine Bugfixes durchgeführt, die jedoch kaum merkbare Auswirkungen haben. Desweiteren kam es durch die Hilfe von Harald Mattern zur wesentlichen Effizienzverbesserung in den Subroutinen GetWeekDay(), GetYearDay()
und isLeapYear().
|
| Version 1.33 - 1.35 |
Codeerweiterung und neue Funktion GetPassedDaysbyMonth(). Die Funktion GetPassedDaysbyMonth() nimmt die Nummer
eines Monats an und berechnet daraus die Zahl der Tage die bis zum
Erreichen des Monats vergangen sind.
Die Funktion PrintHeader() kann nunmehr auch optional Cookies
zurück- oder neu setzen.Aufrufparameter:
|
| Version 1.31 - 1.32 |
Neue Funktion isIP() sowie Fehlerkorrekturen.Die neue Funktion isIP() erlaubt ein Syntaxcheck für
IP-Adressen. Weiterhin wurden Fehler in den Funktionen Add_Days_to_Date()
und GetDatebyYday() korrigiert.Mit Add_Days_to_Date() kann man nun auch Tage abziehen.
|
| Version 1.30 |
Codeverschönerung.... Der Code wurde der CPAN-Notation angepasst. Keine funktionellen Änderungen. |
| Version 1.29 |
Neue Funktion Redirect().Mit Hilfe dieser URL kann man den Webserver anweisen, auf eine andere URL weiterzuleiten. |
| Version 1.28 |
Es wurden drei neue Routinen eingebaut:
|
| Version 1.27 |
Neue globale Variable $web::errorlayout_file.Möchte man mit der Funktion Fehlermeldung() Fehlerausgaben machen, so kann man jedesmal die optionale Angabe der Layout-Datei als drittes Argument mitgeben. Wenn man sich dies ersparen will, reicht es, beim Start des Programmes den Dateinamen der Variable $web::errorlayout_file zuzuweisen.
In diesem Fall wird -so die Datei lesbar ist- diese verwendet um die
Fehlerausgaben im Design anzupassen.Die Layout-Datei kann folgende Variablen besitzen:
|
| Version 1.26 |
Bug in isLeapYear() korrigiert. Als ich die Funktion zum ersten mal schrieb, dachte ich, alle 4 Jahre ist Schaltjahr, was aber nicht stimmt. Korrekt ist: Alle 4 Jahre, wenn das Jahr nicht gleichzeitig durch 100 teilbar ist. Wenn es durch 100 teilbar ist, ist es aber in dem Fall doch ein Schaltjahr, wo es durch 400 teilbar ist. Die Korrektur ist sofort wirksam. Programme, die auf die Funktion zugreifen, brauchen nicht geändert werden. |
| Version 1.25 |
Verbesserung für die Funktion ReadParse.Beim Upload wird die temporäre Datei mit den Inhalt der neuen Datei nun anders gespeichert. |
| Version 1.24 |
Neue Variable $web::OS.Das Modul prüft jetzt, welches Betriebssystem vorhanden ist. Damit ist es jetzt auch uneingeschränkt für Windows-Systeme tauglich; Dort gab es bisher Probleme mit den Funktionen NLock()
und NUnlock(), da die Perlfunktionen link() und unlink()
auf Windows nicht funktionieren.Wird nun in den Locking-Routinen festgestellt, daß es sich um ein Windows-System handelt, wird die Locking-Funktion mit dem Ergebniswert TRUE abgebrochen. |
| Version 1.23 |
Neue Funktion isLeapYear().Diese Funktion liefert TRUE, falls das übergebende Jahr ein Schaltjhar ist, bzw. falls kein Argument gegeben wurde, ob das laufende Jahr eines ist. |
| Version 1.21 - 1.22 |
Neue Funktion NUnlockAll.Hat man mehrere Datei-Locks mit der Funktion NLock() gesetzt, kann man
mit einem Schlag alle Locks aufheben, indem man die
Funktion NUnlockAll aufruft.Diese Funktion nutzt einen globalen Hash %web::lockliste, welche auch
vom Programm abgefragt werden kann.
Neue Funktion |
| Version 1.20 |
Neue Funktion GetSentence().Diese Funktion erlaubt das Parsen eines Textes nach Sätzen. Bei Eingabe eines langen Textes mit mehreren Sätzen und eines Suchwortes, erhält man als Ergebnis den ersten vollständigen Satz, in dem sich das Suchwort befindet. |
Info
$Id: index.shtml,v 1.2 2003/05/20 20:55:33 xwolf Exp $
© 1996 - 2003 by xwolf -
xwolf ist eingetragene Marke beim Deutschen Patent- und Markenamt (Nr. 301 04 380)


