في المقالة السابقة، قدمنا مفهوم PEAR وقواعد الترميز وطرق الاستخدام البسيطة، وقد يكون لديك فهم أولي له. هذه المرة، سوف نقدم وظائف بعض الوحدات في مكتبة PEAR الحالية واستخدامها.
1. اصطلاح التسمية قبل فهم وحدة الكمثرى الحالية، دعونا أولاً نفهم التصنيف التنظيمي لـ PEAR واصطلاح التسمية. يشبه تنظيم الوحدات في PEAR CPAN. يتم وضع الملفات ذات الصلة بكل وحدة ضمن دليل الفئة الخاص بها، ويتم وضع بعضها مباشرة تحت الدليل الجذر للكمثرى (ملف واحد). نظرًا لأن PEAR لا تحتوي على مساحة اسم مثل Java، فيجب أن يعكس اسم فئتك العلاقة بين اسم الوحدة النمطية الخاصة بك أو اسم الفئة الأصل ويلتزم باصطلاحات معينة، على سبيل المثال، اسم الوحدة الخاصة بك: "Mp3/common"، ثم ملف php الخاص بك يجب أن يكون موجودًا في: Mp3/common.php، ويجب أن يكون اسم فئة الوحدة الخاصة بك: Mp3_common. بشكل عام، إذا تم تحسين وحدتك من وحدة موجودة، فمن المستحسن وضع وحدتك والوحدة الموجودة في نفس الدليل. إذا كنت تصمم فئة أو وحدة نمطية جديدة، فيمكنك إنشاء دليل جديد بنفسك، أو وضعها في نفس الدليل لأغراض مماثلة. على سبيل المثال، إذا كتبت وحدة نمطية جديدة لمعالجة السجلات، فمن المستحسن وضعها ضمن السجل/، للإشارة إلى أنها وحدة تطبيق لمعالجة السجل؛ إذا تم استخدام الوحدة الجديدة لمعالجة ملفات MP3، فيمكنك إنشاء A يتم وضع الدليل الجديد mp3 ضمن دليل mp3.
2. وحدات PEAR الموجودة نظرًا لأن معظم وحدات Pear لا تزال قيد التطوير، فإليك الوحدات الموجودة في Pear والتي تم إصدارها باستخدام php4.05. وتجدر الإشارة إلى أن بعض الفئات المجردة أو الفئات الأساسية (مثل Mail.php وLog.php وCache .php) غير مدرجة، فنحن نركز فقط على الوحدات ذات الوظائف المحددة. فيما يلي قائمة بهذه الوحدات:
يختبر المعيار/المؤقت كفاءة تشغيل جزء من كود PHP الخاص بك
يقوم Benchmark/Benchmark_Iterate باختبار أداء الوظيفة عند تنفيذها في حلقة
يمكن لذاكرة التخزين المؤقت/الإخراج تخزين مخرجات برنامج PHP النصي مؤقتًا بعدة طرق (في الملفات أو قواعد البيانات أو الذاكرة المشتركة). إذا كنت تستخدم هذه الوحدة، فقد يؤدي ذلك إلى زيادة الحمل على الخادم، لذلك إذا كنت تريد ذلك لتحسين الكفاءة عن طريق تخزين البرامج النصية الديناميكية مؤقتًا، يمكنك أيضًا استخدام Zend الأمثل. قد لا تكون هذه الوحدة مناسبة.
يمكن لذاكرة التخزين المؤقت/الرسومات تخزين الصور التي تحتاج إلى إخراجها ديناميكيًا
وحدة التحكم/Getopt وحدة معالجة معلمات سطر الأوامر
CMD عبارة عن غلاف افتراضي يمكن استخدامه لتشغيل بعض أوامر النظام.
ينفذ Crypt/CBC محاكاة لوحدة Perl Crypt::CBC
يقوم Crypt/HCEMD5 بتنفيذ وظائف وحدة Perl Crypt::HCE_MD5
يقوم Date/Calc بتنفيذ العمليات المرتبطة بالتاريخ
التاريخ/تحويل التقويم البشري
توفر قاعدة البيانات طبقة تشغيل قاعدة بيانات موحدة ومجردة، وتدعم الواجهة الخلفية قواعد بيانات متعددة.
ملف / البحث عن ملف البحث
يتعامل File/Passwd مع الملفات المشابهة لكلمة المرور، مثل كلمة المرور وhttppass وcvspassword
File/SearchReplace البحث عن سلسلة في ملف واستبدالها
يمكن لـ HTML/Form إنشاء النماذج بسرعة بتنسيق html
يقوم HTML/IT بتنفيذ تخصيص القالب وإنشاء الصفحات ديناميكيًا، على غرار وظيفة القالب في phplib، ولكن يجب أن تكون بسيطة وسهلة الاستخدام
ينفذ HTML/ITX وظائف موسعة لتكنولوجيا المعلومات، مما يسمح لك بتخصيص القوالب الخاصة بك بمرونة أكبر وتحقيق عمليات أكثر تعقيدًا.
امتداد HTML/Processor XML_Parser بحيث يمكن تطبيقه على تشغيل ملفات html
HTTP/Compress عبارة عن فئة مجمعة لآلية التخزين المؤقت لمخرجات Php، والتي يمكنها أيضًا ضغط المحتوى المخزن مؤقتًا وتخزينه.
يمكن للصورة/جهاز التحكم عن بعد الحصول على معلومات الصورة الخاصة بالنظام البعيد دون تنزيل الصورة بأكملها محليًا.
يعد Log/composite Horde امتدادًا لفئة ملخص السجل التي تمكن كائنات معالجة السجل المتعددة من الحصول على نفس حدث السجل. لاحظ أن الوحدات الموجودة في دليل السجل كلها جزء من مشروع Horde، ومعظمها عبارة عن فئات فائقة مجردة.
السجل/الملف يكتب معلومات السجل إلى ملف
يقوم Log/mcal بإرسال المعلومات إلى قاعدة بيانات برنامج إدارة الجدول الزمني المحلي أو البعيد-mcal
فئة فائقة من المراقب في ترتيب السجل/المراقب
يقوم Log/sql بإرسال معلومات السجل إلى قاعدة بيانات SQL
يقوم السجل/سجل النظام بإرسال المعلومات إلى سجل النظام
Mail/RFC822 يتحقق مما إذا كان عنوان البريد الإلكتروني هو عنوان بريد إلكتروني صالح لـ rf822
البريد/sendmail استخدم sendmail لإرسال الرسائل
يستخدم البريد/smtp خادم smtp لإرسال الرسائل
يتعامل Math/Fraction مع الحسابات الرياضية للكسيريات
يقوم Math/Util بحساب القاسم المشترك الأكبر
NET/Curl عبارة عن غلاف موجه للكائنات لملحق Curl الخاص بـ PHP.
NET/Dig يتلاعب بالحفر لتنفيذ عمليات الاستعلام المتعلقة بنظام أسماء النطاقات
يستخدم NET/SMTP NET/Socket لتنفيذ بروتوكول SMTP
NET/Socket فئة المقبس العالمية التي تنفذ عملية التعبئة لعمليات المقبس شائعة الاستخدام
الأرقام/التحويل الروماني بين الأرقام العربية والأرقام الرومانية
تنفذ Payment/Verisign التفاعل مع بوابة الدفع Verisign
توفر Pear فئتين أساسيتين من وحدة Pear، فئتي PEAR وPEARError
PEAR/Installer توفر فئة التثبيت pear وظائف مشابهة لوحدة CPAN في لغة Perl.
يقوم PHPDoc تلقائيًا بإنشاء وثائق API من كود php
الجدول الزمني/at يتفاعل مع البرنامج الخفي AT على Unix
XML/Parser هو محلل XML يعتمد على امتداد XML الخاص بـ php.
يقوم XML/Render بإنشاء مستندات XML بتنسيقات أخرى (html وpdf) وهذه مجرد فئة مجردة. يوجد بالفعل تطبيق لـ html في أحدث كود Pear cvs.
-
rpc في أحدث كود Pear cvs، يوجد بالفعل تطبيق لـ xml/RPC/Server
من الوحدات الأكثر استخدامًا ووظائفها، فهي كاملة ومستقرة نسبيًا ويمكن استخدامها في الوحدات "العملية" وسيتم تقديم العديد من الوحدات القوية مثل Db وphpdoc وXML_Parser وIT وITX بشكل منفصل في المقالات المستقبلية.
1.الكمثرى/المثبت
هذه الوحدة هي الوحدة الأساسية للكمثرى نفسها، وهي تكمل تركيب وصيانة وحدات الكمثرى الأخرى، وهي تشبه وظيفة وحدة cpan في Perl، ولكنها تحتوي حاليًا على وظيفة التثبيت الأخرى. لم يتم الانتهاء من التحقق من التبعيات وما إلى ذلك. لا يوجد موقع مفتوح مثل cpan، ولكن مع استمرار تزايد عدد المطورين المشاركين في Pear، سيكون كل شيء موجودًا.
بناء جملة الاستخدام: PEAR_Installer::installer($file)
$file هو ملف الوحدة الذي يجب تثبيته، ويمكن أن يكون ملفًا محليًا أو ملفًا بعيدًا، مثل http:// أو ftp، وسيقوم المثبت بتنزيله محليًا تلقائيًا. يتم تجميع الملفات بشكل عام باستخدام gzip، والذي يجب أن يتضمن حزمة. يوجد ملف DTD الخاص بـ pacakage.xml ضمن دليل الكمثرى، واسمه هو
package.dtd
require_once "PEAR/Installer.php";
$installer = new PEAR_Installer;
// قم بتثبيت الوحدة المحددة
$result = $installer->install($package_file);
إذا (الكمثرى::isError($result)){
صدى "فشل تثبيت $package_file!";
}آخر {
صدى "نجاح تثبيت $package_file!";
}
?>
2.CMD
على الرغم من أن معظم تطبيقات PHP نادرًا ما تستدعي أوامر النظام، نظرًا لأن هذه التطبيقات تعتمد على الويب، فمن منظور كفاءة التشغيل وتحميل النظام، يجب تجنب الاستدعاءات المباشرة لأوامر النظام، ومع ذلك، في بعض التطبيقات الخاصة أو إذا كنت على استعداد لذلك يتم استخدام PHP كأداة Shell، ولا مفر من استدعاء أدوات النظام الموجودة. يسمح لك CMD بتنفيذ سلسلة من أوامر النظام بسهولة.
بناء جملة الاستخدام: setOption ($option, $setting)
تعيين المعلمة $options على $setting
$options هو أمر ثابت، ويمكن أن يكون القيم التالية:
CMD_SHUTDOWN: تنفيذ الأوامر من خلال وظيفة إيقاف التشغيل
CMD_SHELL: حدد مسار الصدفة
CMD_OUTPUT: ما إذا كان سيتم حظر الإخراج القياسي للأمر
CMD_NOHUP: استخدم nohup لتنفيذ الأوامر في الخلفية
CMD_VERBOSE: أخطاء الطباعة
لأمر الإخراج القياسي ($command)
أضف الأمر الذي يجب تنفيذه، يمكن أن يكون الأمر $ عبارة عن مصفوفة أو سلسلة عادية
exec().
قم بتنفيذ الأمر المضاف
<?php
require_once "CMD.php";
$cmd = CMD جديد؛
$cmd->command('tar zcvf test.tar.gz ~/test');
إذا ($cmd->exec()) {
صدى "النجاح!n";
} ليس {
صدى "خطأ:" $cmd->lastError;
}
?>
3.Benchmark/Timer وBenchmark/Iterate
تسمح لك هاتان الوحدتان باختبار مدى كفاءة تشغيل التعليمات البرمجية الخاصة بك، وهو ما أعتقد أنه مفيد لتصحيح أخطاء النظام: يمكنك تجربة خوارزميات مختلفة، وفحص المدة التي تستغرقها كل خوارزمية للتشغيل بعناية، ثم اختيار أفضل طريقة. يقوم المعيار/المؤقت باختبار الفارق الزمني بين نقطتين زمنيتين مختلفتين أثناء التشغيل. المعيار/التكرار هو امتداد للمؤقت لاختبار الوقت المطلوب لتشغيل جزء معين من التعليمات البرمجية (الوظيفة) n مرات.
بناء جملة الاستخدام: المعيار/المؤقت
Timer::setMarker($name) يعين النقطة الزمنية الحالية إلى $name
يبدأ Timer::start() في الاختبار
Timer::stop() يتوقف عن الاختبار
Timer::timeElapsed($start = 'Start', $end = 'Stop') احسب فارق التوقيت بين $start و$end.
Timer::getProfiling() يُرجع الوقت المنقضي بين البداية والتوقف
<?php
require_once "Benchmark/Timer.php";
$timer = new Benchmark_Timer;
$timer->start();
$timer->setMarker('Marker 1');
$timer->stop();
$profiling = $timer->getProfiling();
?>
المعيار/التكرار
التكرار::run()
تشغيل الوظيفة المحددة في حلقة. هذه طريقة تحتوي على معلمات متغيرة، المعلمة الأولى هي عدد مرات التكرار، والمعلمة الثانية هي الوظيفة التي سيتم تنفيذها، والمعلمة الثالثة فصاعدًا هي المعلمات التي سيتم تمريرها إلى وظيفة الاختبار.
تكرار::الحصول على()
إرجاع الوقت الذي يستغرقه الاختبار
<?php
require_once "Benchmark/Iterate.php"
$benchmark = new Benchmark_Iterate
function foo($string);
{
اطبع سلسلة $."
"؛
}
$benchmark->run(100, 'foo', 'test');
نتيجة $ = $benchmark->get();
?>
3.ملف/بحث
&glob ($pattern, $dirpath, $pattern_type='php')
ابحث في الدلائل والملفات التي تطابق $pattern في $dirpath وقم بإرجاع مجموعة من أسماء الملفات والدلائل المتطابقة
&search ($pattern, $directory, $type='php')
ابحث في دليل $ عن الملفات التي تطابق قواعد $pattern وقم بإرجاع مجموعة من أسماء الملفات المطابقة (لاحظ، الملفات فقط، وليس الدلائل الفرعية).
وعادةً
ما يحدد $patten_type وضع التعبير العادي الذي سيتم استخدامه. يمكنك أيضًا تحديد "Perl" لاستخدام التعبير العادي لوضع Perl.
على عكس glob، لا يبحث glob في الدلائل الفرعية بشكل متكرر، بينما يبحث البحث في الدلائل الفرعية بشكل متكرر.
<?php
require_once "ملف/Find.php";
$find = new File_Find;
// ابحث في الدليل الحالي
$php_files = $find->glob("*php".");
إذا (PEAR::isError( $php_files ) ){
يموت "خطأ: " $php_files->getMessage() ."n" ؛
}
// ابحث بشكل متكرر في الدليل الحالي
$all_php_files = $find->search("*php".");
إذا (PEAR::isError( $all_php_files ) ){
يموت "خطأ: " $php_files->getMessage() ."n" ؛
}
?>
4.ملف/كلمة المرور
التعامل مع الملفات بتنسيق كلمة المرور، على غرار كلمة مرور Unix القياسية وملف .htppass الخاص بـ Apache وملفات كلمة مرور pserver الخاصة بـ cvs. انطلاقًا من الإصدار الحالي من الكود، لا يمكن استخدامه حقًا للحفاظ على ملفات passwd هذه (على سبيل المثال، الظل غير مدعوم). ولكن يمكنك استخدامه لإنشاء ملف كلمة مرور مماثل، وبطبيعة الحال، لن يكون الأمان مرتفعًا جدًا.
كيفية الاستخدام:
File_Passwd($file,$lock=0)----------إنشاء كائن هو ملف passwd الذي تريد تشغيله، يحدد $lock ما إذا كان سيتم استخدام القطيع لقفل الملف.
addUser($user,$pass,$cvsuser)----------إضافة مستخدم، $user، $pass هما اسم المستخدم وكلمة المرور على التوالي، $cvsuser هو معرف مستخدم cvs
modUser($user,$pass,$cvsuser)---------- قم بتغيير كلمة مرور $user إلى $pass، $cvsuser هو معرف مستخدم cvs
delUser($user)----------حذف المستخدم المحدد $user
VerifyPassword($user,$pass)----------التحقق من كلمة مرور المستخدم
Close()----------احفظ التغييرات الآن على ملف كلمة المرور، وأغلق ملف كلمة المرور، وافتح الملف.
5.File/SearchReplace
كيفية
البحث عن السلاسل في الملفات واستبدالها
: File_SearchReplace($find, $replace, $files, $directories = '', $include_subdir = 1, $ignore_lines = array()) ينشئ الكائن$find
ويعينه
السلسلة المراد البحث عنها، والتي يمكن أن تكون سلسلة أو تعبيرًا عاديًا
$replace
السلسلة التي سيتم استبدالها، والتي يمكن أن تكون سلسلة أو تعبيرًا عاديًا
$files
حدد الملفات التي سيتم إجراء عملية الاستبدال فيها، أو مصفوفة أو سلسلة مفصولة بـ "،"
الدلائل $
حدد الدليل الذي تريد العمل فيه، اختياريًا، مصفوفة أو سلسلة مفصولة بـ "،"
$include_subdir
في حالة التشغيل في دليل، يحدد ما إذا كان سيتم تنفيذ العملية المذكورة أعلاه بشكل متكرر في الدلائل الفرعية، والتي يمكن أن تكون قيمة 1 أو 0.
$ignore_lines
حدد أسطر الملفات التي سيتم تجاهلها. هذه مصفوفة. سيتم تجاهل أي أسطر ملف تبدأ بأي سلسلة في هذه المصفوفة.
getNumOccurences()
إرجاع عدد المرات التي تم فيها إجراء البحث والاستبدال
getLastError()
إرجاع رسالة الخطأ الأخيرة
setFind($find)
قم بتعيين السلسلة المراد العثور عليها
setReplace($replace)
قم بتعيين السلسلة المراد استبدالها
setFiles($files)
قم بتعيين الملف المراد استبداله
setDirectories($directories)
قم بتعيين الدليل المراد استبداله
setIncludeSubdir($include_subdir)
قم بتعيين ما إذا كنت تريد أيضًا إجراء البحث والاستبدال في الدلائل الفرعية
setIgnoreLines($ignore_lines)
setSearchFunction($search_function)
فقط عند استخدام وظيفة البحث "العادية"
قم بتعيين وظيفة البحث المراد استخدامها، والتي يمكن أن تكون المعلمات التالية:
القيمة الافتراضية العادية، استخدم وظيفة الملف لقراءة محتوى الملف، ثم استخدم str_replace لاستبدالها سطرًا تلو الآخر.
يستخدم السريع str_replace لاستبدال الملف بأكمله مباشرةً
يستخدم preg preg_replace() للاستبدال، ويمكنك استخدام التعبيرات العادية التي تلبي متطلبات هذه الوظيفة
يستخدم ereg ereg_replace() للاستبدال، ويمكنك استخدام التعبيرات العادية التي تلبي متطلبات هذه الوظيفة
دوسيرتش ()
قم بإجراء عملية بحث واستبدال
<?php
require_once "ملف/SearchReplace.php";
require_once "ملف/بحث";
// ابحث بشكل متكرر في الدليل الحالي
$find = new File_Find;
$all_php_files = $find->search("*php".");
إذا (PEAR::isError( $all_php_files ) ){
يموت "خطأ: " $php_files->getMessage() ."n" ؛
}
إذا (! العد($all_php_file)) {
die "لم يتم العثور على ملفات مصدر PHP!n";
}
// قم بتصحيح علامة php الخاصة بـ <? إلى <?php لتتوافق مع معيار الكمثرى
$replace = new File_SearchReplace('<? ','<?php ',$all_php_files);
$replace->doSearch();
إذا ($replace->getLastError()) {
يموت "حدث خطأ:" $replace->getLastError();
} آخر {
echo "تم استبدال إجمالي " . $replace->getNumOccurences() " بنجاح.n";
}
?>
6.HTML/النموذج
تسمح لك هذه الوحدة بإنشاء نموذج إرسال بسرعة دون الحاجة إلى إعادة كتابة تعليمات HTML البرمجية.
الاستخدام: Form::HTML_Form($action, $method = 'GET', $name = '', $target = '' )
المُنشئ لـ. تحتوي هذه الفئة على بعض المعلمات، والتي هي في الأساس نفس معلمات النموذج المكتوبة عادةً في كود HTML. $action هو عنوان URL الذي سيتم إرساله في النموذج، ويمكن لـ $name تحديد اسم النموذج، و$target لتحديد ما إذا كان سيتم فتحه. نافذة جديدة، الخ.
يتم استخدام سلسلة أساليب addXXX التالية لإضافة عناصر التحكم المقابلة إلى هذا النموذج. كما تتوافق خصائص عناصر التحكم مع تلك الموجودة في HTML.
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 = "إرسال"، $title = "إرسال التغييرات")
addReset($title = "تجاهل التغييرات")
addSelect($name, $title, $entries, $default = '', $size = 1,$blank = '', $multiple = false, $attribs = '')
addRadio($name، $title، $value، $default)
addImage(اسم $, $src)
addHidden(اسم $، قيمة $)
عرض ()
أظهر هذا النموذج
<?php
require_once "HTML/Form.php";
// إنشاء وعرض نموذج تسجيل الدخول
$myform = new HTML_Form("./login.php");
$myform->addText('username','username','');
$myform->addPasswd('passwd','كلمة مرور تسجيل الدخول',20);
$myform->addHidden('إعادة المحاولة','1');
$myform->addSumit('login','login');
$myform->Display();
?>
7.البريد/RFC822
التحقق مما إذا كانت رسالة البريد الإلكتروني التي تم إدخالها قانونية ليست مهمة سهلة. يمكنك محاولة استخدام بعض التعبيرات العادية للتحقق، ولكنها ليست مريحة وفعالة. الآن، إذا كنت تريد التحقق مما إذا كانت سلسلة من عناوين البريد الإلكتروني متوافقة مع معيار RFC822 وتقسيمها إلى عناوين بريد إلكتروني منفصلة، فيمكنك تجربة هذه الوحدة، وهي بسيطة وعملية للغاية.
الاستخدام: Mail_RFC822 ($address = null، $default_domain = null، $nest_groups = null، $validate = null)
مُنشئ الفئة، $address هو سلسلة من العناوين التي تريد التحقق منها، $default_domain، يحدد اسم المجال الافتراضي أو اسم المضيف، $nest_groups ما إذا كان سيتم التجميع في الإخراج بحيث يحتاج $validate إلى التحقق من صحة كل ذرة parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null) التحقق من صحة التحليل المحدد في قائمة العناوين صالحة، يتم إرجاع قائمة العناوين المقسمة في حالة حدوث خطأ، يتم إرجاع رسالة خطأ.
<?php
require_once "Mail/RFC822.php";
$rf822 = Mail_RFC822 الجديد؛
$result=$rf822->paseAddressList('who;[email protected];[email protected]');
إذا ($rf822->خطأ){
صدى "خطأ: نتيجة $"؛
}آخر {
إعادة تعيين(نتيجة $);
لـ ($i=0; $i< count($result);$i++){
صدى "البريد الإلكتروني:$result[$i]n";
}
}
?>
8.البريد/إرسال البريد
Sendmail هو MTA الأكثر استخدامًا على نظام التشغيل unix/linux. تتيح لك هذه الوحدة استخدام sendmail مباشرة لإرسال الرسائل.
الاستخدام: مُنشئ فئة Mail_sendmail($params)
. فقط "sendmail_path" صالح، ويستخدم لتعيين إرسال مسار إرسال البريد ($recipients، $headers، $body) لإرسال الرسائل. $recipients هو عنوان البريد الإلكتروني للمستلم الخاص بك، والذي يمكن أن يكون منفردًا أو منفصلاً عن طريق قائمة العناوين المفتوحة يمكن فتحه طالما أنه يفي بمعيار RFC82. $headers هو رأس الرسالة التي ترسلها، وهذا رقم اقتراني. مفتاح المصفوفة هو اسم الرأس (مثل الموضوع)، وقيمة المصفوفة هي قيمة الرأس (مثل مرحبًا!) . سيكون الترويسة التي تمت معالجتها هي: الموضوع: Hello $body هو نص الرسالة، بما في ذلك جميع الأجزاء المشفرة بـ MIME. إذا نجحت، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع كائن PEAR_Error
<?php
require_once "البريد/sendmail.php";
$sendmail = new Mail_sendmail(array('sendmail_path=>'/usr/local/bin/sendmail'));
$header = array('Subject'=>'Hello','BCC'=>'[email protected]');
$body = 'هذه رسالة اختبارية من موقعnightsailer.com';
$result = $sendmail->send( '[email protected]' , $header, $body);
إذا (الكمثرى::isError($result)) ){
echo "<h1> فشل الإرسال</h1><br>السبب: ".$result->getMessage()."<br>";
}آخر {
echo "<h1>تهانينا! تم الإرسال بنجاح!</h1><br>";
}
?>
9.البريد/SMTP
لا تسمح بعض المواقع حاليًا باستخدام sendmail، لذلك إذا كان برنامج PHP الخاص بك يريد استخدام وظيفة إرسال البريد، فيجب أن يكون قادرًا على إكمال الوظيفة المقابلة باستخدام خادم SMTP خارجي.
الاستخدام: استخدام هذه الوحدة هو في الأساس نفس استخدام Mail::sendmail. تجدر الإشارة إلى أن هذه الوحدة تتطلب استخدام وحدة Net::SMTP: Mail_smtp($params)
المعلمات الصالحة لـ $params هي:
عنوان خادم SMTP "المضيف"، الافتراضي هو المضيف المحلي
منفذ خدمة SMTP "المنفذ"، الافتراضي هو 25
'auth' سواء كان SMTP يتطلب التحقق من الترخيص، فإن الإعداد الافتراضي هو خطأ
"اسم المستخدم" اسم المستخدم المعتمد لـ smtp
كلمة مرور SMTP المعتمدة "كلمة المرور"
("المستلمون $، $headers، $body)
أرسل
<?php
require_once "البريد/sendmail.php";
$params=array('host'=>'smtp.nightsailer.com','auth'=true,
'اسم المستخدم'=>'ليلة','كلمة المرور'=>'123456');
$sendmail = new Mail_sendmail($params);
$header = array('Subject'=>'Hello','BCC'=>'[email protected]');
$body = 'هذه رسالة اختبارية من موقعnightsailer.com';
$result = $sendmail->send( '[email protected]' , $header, $body);
إذا (الكمثرى::isError($result)) ){
echo "<h1> فشل الإرسال</h1><br>السبب: ".$result->getMessage()."<br>";
}آخر {
echo "<h1>تهانينا! تم الإرسال بنجاح!</h1><br>";
}
?>
10.الجدول الزمني/في
توفر هذه الوحدة الواجهة
add($cmd, $timespec, $queue = false, $mail = false)
لبرنامج at على نظام التشغيل Unix.إلحاق أمر at
بهذه الطريقة إلى إنشاء مهمة مخصصة للبرنامج at:
$cmd هو البرنامج أو البرنامج النصي الذي تريد تشغيله
$timespec هو الوقت الذي تبدأ فيه المهمة في التنفيذ، والتنسيق هو نفسه المطلوب بواسطة at
$queue معلمة اختيارية، تشير إلى اسم قائمة الانتظار للمهمة
معلمة اختيارية لـ $mail، تشير إلى ما إذا كان سيتم إرسال بريد إلكتروني للإبلاغ عن نتائج التشغيل بعد انتهاء المهمة
show($queue = false)
يقوم الأمر المعروض في قائمة الانتظار بإرجاع مصفوفة ترابطية. مفتاح الصفيف هو رقم المهمة. قيمة المفتاح المقابلة هي أيضًا مصفوفة ترابطية (وقت التشغيل، قائمة الانتظار $ هي معلمة اختيارية). يمكن استخدامه لإرجاع قائمة المهام فقط في قائمة الانتظار التي يتطابق اسم قائمة الانتظار فيها $queue
Remove($job = false)
حذف المهمة المحددة من قائمة الانتظار $job هو رقم المهمة المراد حذفها، إذا نجحت، قم بإرجاع صحيح، وإلا قم بإرجاع خطأ
<?php
require_once "جدول/At.php";
$at = newched_At();
// إنشاء وإلحاق وظيفة
$result = $at->add ('find / -type file -name core -exec rm -f {} ;','00:00');
إذا (الكمثرى::is_Error($result)) {
echo "لا يمكن إضافة مهمة!n";
echo "السبب: $result->getMessage() n";
مخرج؛
}
// عرض الحالي في قائمة الانتظار
$queue = $at->show();
إذا (الكمثرى::isError($queue)) {
صدى "حدث خطأ!n";
صدى "السبب:" queue->getMessage() "n";
مخرج؛
}
إعادة تعيين($queue);
بينما (قائمة($job, $cmd) = كل قائمة انتظار $){
صدى "[$job]" $cmd['runtime'] ."-" .$cmd['queue'];
صدى "n"
}
?>
ما سبق هو استخدامات بعض وحدات PEAR للحصول على تعليمات أكثر تفصيلاً، تحتاج إلى التحقق من الملفات المصدر لهذه الوحدات بنفسك، أو يمكنك استخدام phpdoc لإنشاء مستندات API الخاصة بهذه الوحدات تلقائيًا. أما بخصوص phpdoc فسوف نتناوله بالتفصيل في المقالة القادمة.
4. الموارد
PEAR CVS يمكنك الحصول على أحدث كود مصدر PEAR من هنا
مشروع هودر
الصفحة الرئيسية PHPDoc