Im vorherigen Artikel haben wir das Konzept von PEAR, Codierungsregeln und einfache Verwendungsmethoden vorgestellt. Möglicherweise haben Sie ein vorläufiges Verständnis davon. Dieses Mal werden wir die Funktionen einiger Module in der vorhandenen PEAR-Bibliothek und deren Verwendung vorstellen.
1. Namenskonvention Bevor wir das bestehende PEAR-Modul verstehen, wollen wir zunächst die organisatorische Klassifizierung und Namenskonvention von PEAR verstehen. Die Organisation der Module in PEAR ähnelt der von CPAN. Die relevanten Dateien jedes Moduls werden in einem eigenen Kategorieverzeichnis abgelegt, und einige werden direkt im Stammverzeichnis von Pear (einzelne Datei) abgelegt. Da PEAR keinen Namensraum wie Java hat, sollte Ihr Klassenname die Beziehung zwischen Ihrem Modulnamen oder dem Namen Ihrer übergeordneten Klasse widerspiegeln und bestimmten Konventionen entsprechen. Zum Beispiel Ihr Modulname: „Mp3/common“ und dann Ihre PHP-Datei sollte sich unter „Mp3/common.php“ befinden und der Klassenname Ihres Moduls sollte „Mp3_common“ lauten. Im Allgemeinen wird empfohlen, Ihr Modul und das vorhandene Modul im selben Verzeichnis abzulegen, wenn Ihr Modul gegenüber einem vorhandenen Modul verbessert wird. Wenn Sie eine neue Klasse oder ein neues Modul entwerfen, können Sie selbst ein neues Verzeichnis erstellen oder sie für ähnliche Zwecke im selben Verzeichnis ablegen. Wenn Sie beispielsweise ein neues Modul für die Protokollverarbeitung schreiben, wird empfohlen, es unter Log/ abzulegen, um anzugeben, dass es sich um ein Anwendungsmodul für die Protokollverarbeitung handelt. Wenn das neue Modul für die Verarbeitung von MP3 verwendet wird, können Sie A erstellen Das neue Verzeichnis „mp3“ wird unter dem Verzeichnis „mp3“ abgelegt.
2. Bestehende PEAR-Module Da sich die meisten Module von Pear noch in der Entwicklung befinden, sind hier die Module in PEAR, die mit PHP4.05 veröffentlicht wurden. Es ist zu beachten, dass einige abstrakte Klassen oder Basisklassen (wie Mail.php, Log.php, Cache .php) sind nicht aufgeführt, wir konzentrieren uns nur auf Module mit bestimmten Funktionen. Im Folgenden finden Sie eine Liste dieser Module:
Benchmark/Timer testet die Ausführungseffizienz eines Teils Ihres PHP-Codes
Benchmark/Benchmark_Iterate testet die Leistung einer Funktion, wenn sie in einer Schleife ausgeführt wird
Cache/Output kann die Ausgabe Ihres PHP-Skripts auf verschiedene Weise zwischenspeichern (in Dateien, Datenbanken oder im gemeinsam genutzten Speicher). Wenn Sie dieses Modul verwenden, kann dies die Belastung des Servers erhöhen Um die Effizienz durch das Zwischenspeichern dynamischer Skripte zu verbessern, können Sie auch Zend Optimize verwenden. Dieses Modul ist möglicherweise nicht geeignet.
Cache/Grafiken können die Bilder zwischenspeichern, die Sie für die dynamische Ausgabe benötigen
Console/Getopt-Befehlszeilenparameterverarbeitungsmodul
CMD ist eine virtuelle Shell, die zum Ausführen einiger Systembefehle verwendet werden kann.
Crypt/CBC implementiert die Simulation des Perl-Moduls Crypt::CBC
Crypt/HCEMD5 implementiert die Funktionen des Perl Crypt::HCE_MD5-Moduls.
Date/Calc implementiert datumsbezogene Operationen
Konvertierung von Datum/menschlichem Kalender
DB bietet eine einheitliche und abstrakte Datenbankbetriebsschicht, und das Backend unterstützt mehrere Datenbanken.
Datei/Dateisuche
File/Passwd manipuliert passwortähnliche Dateien wie „password“, „httppass“ und „cvspassword“.
File/SearchReplace Suchen und ersetzen Sie eine Zeichenfolge in einer Datei
HTML/Form kann schnell Formulare in HTML erstellen
HTML/IT implementiert die Vorlagenanpassung und generiert dynamisch Seiten, ähnlich der Vorlagenfunktion in phplib, sollte aber einfach und benutzerfreundlich sein
HTML/ITX implementiert erweiterte Funktionen für die IT, sodass Sie Ihre Vorlagen flexibler anpassen und komplexere Vorgänge realisieren können.
Erweiterung des HTML/Prozessors XML_Parser, sodass dieser auf den Betrieb von HTML-Dateien angewendet werden kann
HTTP/Compress ist eine Wrapper-Klasse für den Ausgabepuffermechanismus von PHP, die auch den gepufferten Inhalt komprimieren und speichern kann.
Image/Remote kann die Bildinformationen des Remote-Systems abrufen, ohne das gesamte Bild lokal herunterzuladen.
Log/Composite Horde ist eine Erweiterung der Log-Abstract-Klasse, die es mehreren Protokollverarbeitungsobjekten ermöglicht, dasselbe Protokollereignis abzurufen. Beachten Sie, dass die Module im Log-Verzeichnis alle Teil des Horde-Projekts sind und die meisten davon abstrakte Superklassen sind.
Protokoll/Datei schreibt Protokollinformationen in eine Datei
Log/mcal sendet Informationen an die Datenbank der lokalen oder Remote-Zeitplanverwaltungssoftware-mcal
Eine Oberklasse von Observer in Log/observer Horder
Log/sql sendet Protokollinformationen an die SQL-Datenbank
Log/Syslog sendet Informationen an Syslog
Mail/RFC822 Prüft, ob eine E-Mail-Adresse eine gültige RF822-E-Mail-Adresse ist
Mail/sendmail Verwenden Sie sendmail, um Briefe zu versenden
Mail/SMTP verwendet einen SMTP-Server zum Versenden von Briefen
Math/Fraction übernimmt mathematische Berechnungen von Fraktalen
Math/Util berechnet den größten gemeinsamen Teiler
NET/Curl ist ein objektorientierter Wrapper für die Curl-Erweiterung von PHP.
NET/Dig manipuliert dig, um DNS-bezogene Abfragevorgänge auszuführen
NET/SMTP verwendet NET/Socket zur Implementierung des SMTP-Protokolls
NET/Socket-universelle Socket-Klasse, die das Packen häufig verwendeter Socket-Operationen implementiert
Zahlen/römische Konvertierung zwischen arabischen Ziffern und römischen Ziffern
Payment/Verisign implementiert die Interaktion mit dem Verisign-Zahlungsgateway
Pear stellt zwei Grundklassen des Pear-Moduls bereit: PEAR und PEARError
PEAR/Installer Die PEAR-Installationsklasse bietet ähnliche Funktionen wie das CPAN-Modul in Perl.
PHPDoc generiert automatisch API-Dokumentation aus PHP-Code
Schedule/at interagiert mit dem AT-Daemon unter Unix
XML/Parser ist ein XML-Parser, der auf der XML-Erweiterung von PHP basiert.
XML/Render generiert XML-Dokumente in andere Formate (HTML, PDF). Es gibt bereits eine Implementierung von HTML im neuesten Pear-CVS-Code.
XML/RPC verwendet PHP, um eine abstrakte Klasse von xml-rpc zu implementieren. Im neuesten Pear-CVS-Code gibt es bereits eine Implementierung von xml/RPC/Server.
Jetzt werden wir einige kurz vorstellen Es ist relativ vollständig und stabil und kann in „praktischen“ Modulen wie Db, phpdoc, XML_Parser, IT und ITX verwendet werden.
1.PEAR/Installer
Dieses Modul ist das Kernmodul von Pear selbst. Es ähnelt der Funktion des CPAN-Moduls in Perl, verfügt jedoch derzeit nur über die Installationsfunktion. Die Überprüfung von Abhängigkeiten usw. wurde noch nicht abgeschlossen. Es gibt keine offene Site wie cpan, aber da die Anzahl der an Pear teilnehmenden Entwickler weiter zunimmt, wird alles vorhanden sein.
Verwendungssyntax: PEAR_Installer::installer($file)
$file ist die Moduldatei, die installiert werden muss. Es kann sich um eine lokale Datei oder eine Remote-Datei handeln, z. B. http:// oder ftp. Das Installationsprogramm lädt sie automatisch lokal herunter. Dateien werden im Allgemeinen mit gzip gepackt, das ein Paket enthalten muss. Die DTD-Datei von pacakage.xml befindet sich im Pear-Verzeichnis und heißt package.dtd
<?php
require_once "PEAR/Installer.php";
$installer = neuer PEAR_Installer;
//Installieren Sie das angegebene Modul
$result = $installer->install($package_file);
if (PEAR::isError($result)){
echo „Installation von $package_file fehlgeschlagen!“;
}anders {
echo „$package_file erfolgreich installieren!“;
}
?>
2.CMD
Obwohl die meisten PHP-Anwendungen selten Systembefehle aufrufen, da diese Anwendungen auf dem Web basieren, sollten aus Sicht der Betriebseffizienz und der Systemlast direkte Aufrufe von Systembefehlen vermieden werden. In einigen speziellen Anwendungen oder wenn Sie dazu bereit sind Da PHP als Shell-Tool verwendet wird, ist es unumgänglich, vorhandene Systemtools aufzurufen. CMD ermöglicht Ihnen die einfache Ausführung einer Reihe von Systembefehlen.
Verwendungssyntax: setOption ($option, $setting)
Parameter $options auf $setting setzen
$options ist eine Konstante, sie kann die folgenden Werte annehmen:
CMD_SHUTDOWN: Befehle über die Shutdown-Funktion ausführen
CMD_SHELL: Geben Sie den Pfad der Shell an
CMD_OUTPUT: Ob die Standardausgabe des Befehls blockiert werden soll
CMD_NOHUP: Verwenden Sie nohup, um Befehle im Hintergrund auszuführen
Standardausgabebefehl ($command)
ausgeben
Fügen Sie den Befehl hinzu, der ausgeführt werden muss. $command kann ein Array oder eine gewöhnliche Zeichenfolge
exec()
sein.
Führen Sie den hinzugefügten Befehl
<?php
aus
require_once "CMD.php";
$cmd = neues CMD;
$cmd->command('tar zcvf test.tar.gz ~/test');
if ( $cmd->exec() ) {
echo „Erfolg!n“;
} esle {
echo "Fehler:" $cmd->lastError;
}
?>
3.Benchmark/Timer und Benchmark/Iterieren
Mit diesen beiden Modulen können Sie testen, wie effizient Ihr Code ausgeführt wird, was meiner Meinung nach für das System-Debugging nützlich ist: Sie können verschiedene Algorithmen ausprobieren, sorgfältig prüfen, wie lange die Ausführung jedes Algorithmus dauert, und dann die beste Methode auswählen. Benchmark/Timer testet den Zeitunterschied zwischen zwei verschiedenen Zeitpunkten während des Betriebs. Benchmark/Iterate ist eine Erweiterung von Timer, um die Zeit zu testen, die erforderlich ist, um einen bestimmten Codeabschnitt (Funktion) n-mal auszuführen.
Verwendungssyntax: Benchmark/Timer
Timer::setMarker($name) setzt den aktuellen Zeitpunkt auf $name
Timer::start() startet den Test
Timer::stop() stoppt den Test
Timer::timeElapsed($start = 'Start', $end = 'Stop') Berechnen Sie die Zeitdifferenz zwischen $start und $end.
Timer::getProfiling() gibt die zwischen Start und Stopp verstrichene Zeit zurück
<?php
require_once "Benchmark/Timer.php";
$timer = new Benchmark_Timer;
$timer->start();
$timer->setMarker('Marker 1');
$timer->stop();
$profiling = $timer->getProfiling();
?>
Benchmark/Iterate
Iterate::run()
Führt die angegebene Funktion in einer Schleife aus. Dies ist eine Methode mit variablen Parametern. Der erste Parameter ist die Anzahl der Schleifendurchläufe, der zweite Parameter ist die auszuführende Funktion und der dritte Parameter sind die Parameter, die an die Testfunktion übergeben werden sollen.
Iterieren::get()
Gibt die für den Test benötigte Zeit zurück
<?php
require_once "Benchmark/Iterate.php";
$benchmark = new Benchmark_Iterate
function foo($string)
{
$string drucken.“
";
}
$benchmark->run(100, 'foo', 'test');
$result = $benchmark->get();
?>
3.Datei/Suchen
&glob ($pattern, $dirpath, $pattern_type='php')
Durchsuchen Sie Verzeichnisse und Dateien, die mit $pattern in $dirpath übereinstimmen, und geben Sie ein Array übereinstimmender Datei- und Verzeichnisnamen zurück.
&search ($pattern, $directory, $type='php')
Durchsuchen Sie $directory nach Dateien, die den $pattern-Regeln entsprechen, und geben Sie ein Array übereinstimmender Dateinamen zurück (Hinweis: nur Dateien, keine Unterverzeichnisse). $pattern ist die anzugebende Suchbedingung, normalerweise gibt $patten_type an, welcher Modus des regulären Ausdrucks verwendet werden soll. Sie können auch „perl“ angeben, um den regulären Ausdruck zu verwenden
. search Im Gegensatz zu glob durchsucht glob Unterverzeichnisse nicht rekursiv, während search Unterverzeichnisse rekursiv durchsucht.
<?php
require_once "File/Find.php";
$find = new File_Find;
//Durchsuchen Sie das aktuelle Verzeichnis
$php_files = $find->glob("*php",".");
if ( PEAR::isError( $php_files ) ){
die „Fehler: „ . $php_files->getMessage() .“n“ ;
}
// Durchsuchen Sie rekursiv das aktuelle Verzeichnis
$all_php_files = $find->search("*php",".");
if ( PEAR::isError( $all_php_files ) ){
die „Fehler: „ . $php_files->getMessage() .“n“ ;
}
?>
4.Datei/Passwort
Bearbeiten Sie Dateien im Passwortformat, ähnlich den Standard-Unix-Passwortdateien, den .htppass-Dateien von Apache und den pserver-Passwortdateien von cvs. Der aktuellen Version des Codes nach zu urteilen, kann er nicht wirklich zum Verwalten dieser Passwd-Dateien verwendet werden (Shadow wird beispielsweise nicht unterstützt). Aber Sie können damit eine ähnliche Passwortdatei erstellen, die Sicherheit ist dann aber nicht sehr hoch.
Anwendung:
File_Passwd($file,$lock=0)----------Erstellen Sie ein Objekt, das die passwd-Datei ist, die Sie bedienen möchten.
addUser($user,$pass,$cvsuser)----------Fügen Sie einen Benutzer hinzu, $user, $pass sind der Benutzername bzw. das Passwort, $cvsuser ist die ID des cvs-Benutzers
modUser($user,$pass,$cvsuser)----------Ändern Sie das Passwort von $user in $pass, $cvsuser ist die ID des cvs-Benutzers
delUser($user)----------Löschen Sie den angegebenen Benutzer $user
verifyPassword($user,$pass)----------Benutzerpasswort überprüfen
close()----------Speichern Sie die gerade vorgenommenen Änderungen in der Passwortdatei, schließen Sie die Passwortdatei und entsperren Sie die Datei.
5.Datei/SuchenErsetzen
So
finden und ersetzen Sie Zeichenfolgen in Dateien
: File_SearchReplace($find, $replace, $files, $directories = '', $include_subdir = 1, $ignore_lines = array())generiert und legt das Objekt
$find
fest
Die zu suchende Zeichenfolge, die eine Zeichenfolge oder ein regulärer Ausdruck
$replace
sein kann
Die Zeichenfolge, durch die ersetzt werden soll. Dabei kann es sich um eine Zeichenfolge oder einen regulären Ausdruck
$files
handeln
Geben Sie an, in welchen Dateien der Ersetzungsvorgang ausgeführt werden soll, in einem Array oder einer Zeichenfolge, getrennt durch ","
$directories
Geben Sie das Verzeichnis an, in dem gearbeitet werden soll, optional ein Array oder eine Zeichenfolge, getrennt durch ","
$include_subdir
Gibt beim Betrieb in einem Verzeichnis an, ob der obige Vorgang rekursiv in Unterverzeichnissen ausgeführt werden soll. Der Wert kann 1 oder 0 sein.
$ignore_lines
Geben Sie die zu ignorierenden Dateizeilen an. Dies ist ein Array. Alle Dateizeilen, die mit einer beliebigen Zeichenfolge in diesem Array beginnen, werden ignoriert.
getNumOccurences()
Gibt zurück, wie oft ein Suchen und Ersetzen durchgeführt wurde
getLastError()
Gibt die letzte Fehlermeldung zurück
setFind($find)
Legen Sie die zu findende Zeichenfolge fest
setReplace($replace)
Legen Sie die zu ersetzende Zeichenfolge fest:
setFiles($files)
Legen Sie die zu ersetzende Datei fest
setDirectories($directories)
Legen Sie das zu ersetzende Verzeichnis fest
setIncludeSubdir($include_subdir)
Legen Sie fest, ob Suchen und Ersetzen auch in Unterverzeichnissen durchgeführt werden soll
setIgnoreLines($ignore_lines)
setSearchFunction($search_function)
nur, wenn Sie die „normale“ Suchfunktion verwenden
Legen Sie die zu verwendende Suchfunktion fest. Dies können die folgenden Parameter sein:
normal Standardwert: Verwenden Sie die Dateifunktion, um den Dateiinhalt zu lesen, und verwenden Sie dann str_replace, um ihn Zeile für Zeile zu ersetzen.
Quick verwendet str_replace, um die gesamte Datei direkt zu ersetzen
preg verwendet preg_replace() zum Ersetzen. Sie können reguläre Ausdrücke verwenden, die die Anforderungen dieser Funktion erfüllen
Ereg verwendet zum Ersetzen Ereg_replace (). Sie können reguläre Ausdrücke verwenden, die die Anforderungen dieser Funktion erfüllen
doSearch()
Führen Sie einen Such- und Ersetzungsvorgang
<?php
durch
require_once „File/SearchReplace.php“;
require_once "File/Find";
//Rekursives Durchsuchen des aktuellen Verzeichnisses
$find = new File_Find;
$all_php_files = $find->search("*php",".");
if ( PEAR::isError( $all_php_files ) ){
die „Fehler: „ . $php_files->getMessage() .“n“ ;
}
if ( !count($all_php_file) ){
die „KEINE PHP-Quelldateien gefunden!n“;
}
//Korrigieren Sie das PHP-Flag von <? in <?php, um dem Pear-Standard zu entsprechen
$replace = new File_SearchReplace('<? ','<?php ',$all_php_files);
$replace->doSearch();
if ( $replace->getLastError() ) {
die „Ein Fehler ist aufgetreten:“ $replace->getLastError();
} anders {
echo "Insgesamt " . $replace->getNumOccurences() " wurde erfolgreich ersetzt. n";
}
?>
6.HTML/Formular
Mit diesem Modul können Sie schnell ein Übermittlungsformular generieren, ohne den HTML-Code neu schreiben zu müssen.
Verwendung: Form::HTML_Form($action, $method = 'GET', $name = '', $target = '' )
Der Konstruktor von Diese Klasse verfügt über einige Parameter, die im Wesentlichen mit den Formularparametern übereinstimmen, die normalerweise in HTML-Code geschrieben werden. $action ist die URL, die im Formular übermittelt werden soll, $name kann den Namen des Formulars angeben und $target Geben Sie an, ob es geöffnet werden soll ein neues Fenster usw.
Die folgenden addXXX-Methoden werden verwendet, um diesem Formular entsprechende Steuerelemente hinzuzufügen. Die Eigenschaften der Steuerelemente stimmen auch mit denen in HTML überein.
addText($name, $title, $default, $size = HTML_FORM_TEXT_SIZE)
addCheckbox($name, $title, $default)
addTextarea($name, $title, $default,$width = HTML_FORM_TEXTAREA_WT,$height = HTML_FORM_TEXTAREA_HT)
addPassword($name, $title, $default, $size = HTML_FORM_PASSWD_SIZE)
addSubmit($name = "submit", $title = "Änderungen senden")
addReset($title = "Änderungen verwerfen")
addSelect($name, $title, $entries, $default = '', $size = 1,$blank = '', $multiple = false, $attribs = '')
addRadio($name, $title, $value, $default)
addImage($name, $src)
addHidden($name, $value)
Display()
Dieses Formular anzeigen
<?php
require_once "HTML/Form.php";
//Anmeldeformular erstellen und anzeigen
$myform = new HTML_Form("./login.php");
$myform->addText('username','username','');
$myform->addPasswd('passwd','Login-Passwort',20);
$myform->addHidden('retry','1');
$myform->addSumit('login','login');
$myform->Display();
?>
7.Mail/RFC822
Die Überprüfung, ob eine eingegebene E-Mail legal ist, ist keine leichte Aufgabe. Sie können versuchen, einige reguläre Ausdrücke zur Überprüfung zu verwenden, aber das ist nicht so praktisch und effektiv. Wenn Sie nun überprüfen möchten, ob eine Reihe von E-Mail-Adressen dem RFC822-Standard entsprechen, und diese in separate E-Mail-Adressen aufteilen möchten, können Sie dieses Modul ausprobieren, das sehr einfach und praktisch ist.
Verwendung: Mail_RFC822 ($address = null, $default_domain = null, $nest_groups = null, $validate = null)
Klassenkonstruktor, $address ist eine Reihe von Adressen, die Sie überprüfen möchten, $default_domain, gibt den Standarddomänennamen oder Hostnamen an, $nest_groups Gibt an, ob die Ausgabe so gruppiert werden soll, dass $validate jedes Atom validieren muss. parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null) Parse-Validierung gegeben Die Adressliste gültig, die geteilte Adressliste wird zurückgegeben. Wenn ein Fehler auftritt, wird eine Fehlermeldung zurückgegeben.
<?php
require_once "Mail/RFC822.php";
$rf822 = neues Mail_RFC822;
$result=$rf822->paseAddressList('who;[email protected];[email protected]');
if ( $rf822->error ){
echo „Fehler:$result“;
}anders {
zurücksetzen($result);
for ($i=0; $i< count($result);$i++){
echo "email:$result[$i]n";
}
}
?>
8.Mail/Sendmail
Sendmail ist der am häufigsten verwendete MTA unter Unix/Linux.
Verwendung: Mail_sendmail($params)
ist ein assoziatives Array Nur „sendmail_path“ ist gültig und wird zum Festlegen des sendmail-Pfads verwendet. send($recipients, $headers, $body) ist die E-Mail-Adresse Ihres Empfängers, die einzeln oder getrennt sein kann kann geöffnet werden, solange es dem RFC82-Standard entspricht. $headers ist der Header des von Ihnen gesendeten Briefes. Der Schlüssel des Arrays ist der Name des Headers (z. B. Betreff), und der Array-Wert ist der Wert des Headers (z. B. Hallo!). . Der verarbeitete Briefkopf lautet: Betreff:Hallo! $body ist der Textkörper des Briefes, einschließlich aller MIME-codierten Teile. Bei Erfolg wird true zurückgegeben, andernfalls wird ein PEAR_Error-Objekt
<?php
zurückgegeben
require_once "Mail/sendmail.php";
$sendmail = new Mail_sendmail(array('sendmail_path=>'/usr/local/bin/sendmail'));
$header = array('Subject'=>'Hello','BCC'=>'[email protected]');
$body = 'Dies ist eine Testnachricht von nightsailer.com';
$result = $sendmail->send( '[email protected]' , $header, $body);
if ( PEAR::isError($result) ){
echo „<h1> Senden fehlgeschlagen</h1><br>Grund: „.$result->getMessage().“<br>“;
}anders {
echo "<h1>Herzlichen Glückwunsch! Erfolgreich gesendet!</h1><br>";
}
?>
9.Mail/SMTP
Einige Websites erlauben derzeit die Verwendung von sendmail nicht. Wenn Ihr PHP-Programm also die E-Mail-Versandfunktion nutzen möchte, muss es in der Lage sein, die entsprechende Funktion über einen externen SMTP-Server auszuführen.
Verwendung: Die Verwendung dieses Moduls ist grundsätzlich dieselbe wie die von Mail::sendmail. Es ist zu beachten, dass dieses Modul die Verwendung des Net::SMTP-Moduls erfordert: Mail_smtp($params)
Gültige Parameter für $params sind:
„host“ SMTP-Serveradresse, der Standardwert ist localhost
'port' SMTP-Dienst-Port, der Standardwert ist 25
'auth' Ob SMTP eine Autorisierungsüberprüfung erfordert, der Standardwert ist false
'usename' SMTP-autorisierter Benutzername
'Passwort' SMTP-autorisiertes Passwort
senden($recipients, $headers, $body)
senden Sie
<?php
require_once "Mail/sendmail.php";
$params=array('host'=>'smtp.nightsailer.com','auth'=true,
'Benutzername'=>'Nacht','Passwort'=>'123456');
$sendmail = new Mail_sendmail($params);
$header = array('Subject'=>'Hello','BCC'=>'[email protected]');
$body = 'Dies ist eine Testnachricht von nightsailer.com';
$result = $sendmail->send( '[email protected]' , $header, $body);
if ( PEAR::isError($result) ){
echo „<h1> Senden fehlgeschlagen</h1><br>Grund: „.$result->getMessage().“<br>“;
}anders {
echo "<h1>Herzlichen Glückwunsch! Erfolgreich gesendet!</h1><br>";
}
?>
10.Zeitplan/Um
Dieses Modul stellt die Schnittstelle
add($cmd, $timespec, $queue = false, $mail = false)
des at-Programms unter Unix bereit.
Durch Anhängen eines at-Befehls
generiert diese Methode einen benutzerdefinierten Job für das at-Programm:
$cmd ist das Programm oder Skript, das Sie ausführen möchten
$timespec ist die Zeit, zu der der Job mit der Ausführung beginnt. Das Format ist dasselbe wie für at erforderlich
Optionaler Parameter $queue, der den Warteschlangennamen des Jobs angibt
$mail optionaler Parameter, der angibt, ob eine E-Mail gesendet werden soll, um die laufenden Ergebnisse nach Beendigung des Jobs zu melden.
show($queue = false)
Der in der at-Warteschlange angezeigte Befehl ist ein assoziatives Array. Der entsprechende Schlüsselwert ist ein optionaler Parameter kann es verwenden, um nur die Jobliste in der Warteschlange zurückzugeben, deren Warteschlangenname mit $queue
remove($job = false)
übereinstimmt.
Den angegebenen at-Job aus der at-Warteschlange löschen. Bei Erfolg wird true zurückgegeben, andernfalls wird false
zurückgegeben
require_once „Schedule/At.php“;
$at = new Schedule_At();
//Job generieren und anhängen
$result = $at->add ('find / -type file -name core -exec rm -f {} ;','00:00');
if ( PEAR::is_Error($result) ) {
echo „Job kann nicht hinzugefügt werden!n“;
echo "Grund: $result->getMessage() n";
Ausfahrt;
}
//Zeigt die aktuelle Warteschlange an
$queue = $at->show();
if ( PEAR::isError($queue) ) {
echo „Es ist ein Fehler aufgetreten!n“;
echo „Grund:“ . queue->getMessage() „n“;
Ausfahrt;
}
zurücksetzen( $queue );
while ( list($job, $cmd) = every $queue ){
echo "[$job]" . $cmd['runtime'] "-" .$cmd['queue'];
Echo „n“
}
?>
Das Obige ist die Verwendung einiger PEAR-Module. Für detailliertere Anweisungen müssen Sie die Quelldateien dieser Module selbst überprüfen oder phpdoc verwenden, um die API-Dokumente dieser Module automatisch zu generieren. Was phpdoc betrifft, werden wir es im nächsten Artikel ausführlich besprechen.
4. Ressourcen
PEAR CVS Den neuesten PEAR-Quellcode erhalten Sie hier
Hoder-Projekt
PHPDoc-Homepage