موضوع رائع ،،
موضوع رائع رائع رائع ،،
موضوع بسيط الشرح ،، وقيم وضروري جدا في التعامل ،،
اشكر للمشرف العام على هذه الزيارة الرائعة لمنتدى البرمجة ...
سيتم التقيم ***** (5نجوم)
السلام عليكم...
عبر هذه المشاركة, أود أن أشارك مع الاخوة في القسم شيئا بسيطا عن لغة PHP لبرمجة المواقع...
هذا الشيء, ربما يكون كود صغير, أو دالة ليستخدمها آخرون في جزء من برنامجهم, أو حيلة برمجية ..... الخ
في العمل, أتوصل الى الكثير من الحلول, وأحب أن اضعها هنا, كذلك اتمنى من الآخرين ان يشاركونا بنفس ما لديهم...
هذه السطور التي أكتبها تحتاج الى مبرمج من المستوى المتقدم أو المتوسط في برمجة PHP
أستخدم لغة PHP اصدار 5, وأنصح بترك الاصدار الرابع تماما...
الفهرس الخاص بالموضوع
الطباعة بعدة أشكال مع الجداول (كيمو) 1
التعامل مع قواعد البيانات (كيمو)3
حماية الملفات الهامة (كيمو)3
عمل لوحة تحكم وتحديد المستخدمين (كيمو)3
استعلامات متقدمة لقواعد البيانات (كيمو)4
التعامل مع الملفات النصية (كيمو)5
دوال هامة لا غنى عنها (محمد زكي) 8
التعامل مع XML (كيمو)10
التعامل مع الوقت (محمد زكي) 11
التعامل مع البريد الإلكتروني (محمد زكي) 12
لمشاهدة الموضوع فقط اضغط على الرقم الخاص بالمشاركة المدرج أمام الموضوع
=====================
سأبدأ معكم بشيء أعتبره قليل التواجد في لغة PHP, وهو الاعتماد على Class من نظام تشغيل مايكروسوفت ويندوز, للحصول على معلومات محددة, واعادة تصديرها الى قاعدة بيانات أو نموذج أو حتى الى الصفحة نفسها (صفحة او كلاس..... الخ).
هذه الخدمة هي WMI وهي اختصار ل: Windows Management Instrumentation وهي Service تبدا تلقائيا مع بدء نظام التشغيل ويندوز (اعداد ويندوز الافتراضي يعين تشغيلها الى أتوماتيك).
يتم استدعاء الكلاسات الموجودة في هذه الخدمة لاستدعاء معلومات أو بيانات من خلال لغات البرمجة .NET لكن طريقة استدعائها في لغة PHP كالتالي:
في المثال السابق استدعينا الكلاس Win32_Processor ووضعناه داخل المتغير Proكود PHP:
$wmi = new COM('winmgmts://');
$pro = $wmi->ExecQuery("SELECT * FROM Win32_Processor");
foreach($pro as $obj){
$cpu_name = $obj->Name;
}
echo $cpu_name;
نستخلص المتغير Name الموجود داخل الكلاس ونضعه في المتغير cpu_name
بنفس الطريقة افعل ما تريده مع أغلب الكلاسات الموجودة هنا:
https://msdn2.microsoft.com/en-us/library/aa394554.aspx
حيل تطبيقية:
يمكنك صنع نمذج أو تطبيقات ويب جاهزة التعبئة, خاصة تطبيقات انترانت intra net التي تجمع اسم المستخدم على الدومين واسم الدومين..... الخ
أو يمكنك عمل نماذج أخرى لجمع مواصفات جهاز الزائر..... الخ
حيل خبيثة: تستخدم بعض تطبيقات PHP حيل خبيثة من خلال (تشغيل تطبيق PHP في الخلفية لصفحتك, لجمع معلومات معينة, ثم ارسالها, بينما أنت تتصفح الموقع ولا تعرف)..
====================
طريقة لطباعة جدول متباين التظليل:
بمعنى: صف بلون والصف التالي بلون مختلف, وهكذا (مثلا أبيض ورمادي).
كما هو واضح من الكود السابق, وضعنا محتويات قاعدة بيانات في مصفوفة اسمها $thisrow , وقبل البدء في حلقة التكرار عينا المتغير J للقيمة 1, وأجرينا أهم خطوة وهي اختبار المتغير j فاذا كان زوجي أي باقي القسمة على 2 يساوي صفر, وضعنا الخرج في تنسيق معين, والا يصبح العدد فردي ويكون الخرج في تنسيق آخر....كود PHP:
$j=1;
while($thisrow=mysql_fetch_row($result))
{
if ($j%2==0){
//printing code
$j++;
}
else{
//printing code with other color
$j++
}
}// end of while
احصل على كفاءة اكثر في الكود:
قد يتساءل مبرمج محترف عن (هذا يؤدي الى تكرار سطور معينة في الكود) وهي سطور الطباعة...
لأنها مرة للزوجي ومرة للفردي, فقط نغير لون الخلفية
الحل بسيط جدا... وهو عمل دالة بسيطة للطباعة...
ترى كيف نكتب هذه الدالة؟؟
هذا تمرين بسيط أتركه لمن يريد المحاولة..
نلتقي قريبا ان شاء الله مع أساليب وطرق برمجية أخرى
بالتوفيق
موضوع رائع ،،
موضوع رائع رائع رائع ،،
موضوع بسيط الشرح ،، وقيم وضروري جدا في التعامل ،،
اشكر للمشرف العام على هذه الزيارة الرائعة لمنتدى البرمجة ...
سيتم التقيم ***** (5نجوم)
شكرا أخي محمد على مرورك,
الموضوع يزداد قوة بمشاركة الآخرين أفكارهم ونقاشهم حول الأكواد الموجودة وطرح ما لديهم من افكار..... الخ
======================
أتحدث الآن عن نقطة هامة في قواعد البيانات يهملها كثير من المبرمجين,
معروف أننا نفتح قاعدة بيانات لاجراء عمليات عليها كالعرض والتحديث والحذف.... الخ
لكن الكثير ينسى أن (يغلق) قاعدة البيانات في نهاية الملف أو السكريبت...
أمر اغلاق قاعدة البيانات:
حيث يمثل المتغير db_handl دالة اتصال مع قاعدة البيانات:كود PHP:
mysql_close($db_handl);
======================كود PHP:
$db_handl=mysql_connect('server_name', 'mysql_user', 'mysql_password');
انشاء ملف محمي بكلمة سر: (يمكن استخدامه كلوحة تحكم بسيطه):
اقرأ هذا الكود:
هذا أبسط كود يمكن استخدامه لانشاء مستخدم للوحة تحكم بسيطه من صفحة واحدة, مع ارسال session الى المتصفح, ضع الكود السابق في الهيدر..كود PHP:
require('conf.php');
define('IN_ADMIN',true);
session_name('kimo');
session_start();
if (isset($_POST['logsub'])) {
if ($_POST['uname'] == $confg['uname'] && $_POST['pword'] == $confg['pword']) {
$_SESSION['login'] = true;
}
else {
$err = 'Invalid username or password';
}
}
elseif ($_GET['action'] == 'logout') {
$_SESSION = array();
session_destroy();
}
واستخدم الكود التالي للتحكم بتسلسل التنفيذ (طبعا الكود التالي في البودي):
ملاحظات هامة:كود PHP:
if ($_SESSION['login']) {
//code will be excute if log in is true
//it means this user is the admin
}
elseif ($_GET['action'] == 'logout') {
//you must put this condition to log out the admin and close the session.....
//you must.... you must
}
else {
//login form here, put remember to match the variables
}
//I think you will forget to close the DB!!!!!!
//remember :)
- استخدمنا المتغير $_session وليس $HTTP_SESSION_VARS لأن الأول متغير جلوبال Global ولا يحتاج لتعريفك له بهذا, وبنفس الطريقة نستخدم متغيرات $_POST, $_GET
- يجب تدمير السيشن كما تشاهد بالأعلى, لضمان الحماية.
أساليب برمجية لتعيين أكثر من مستخدم, وتحديد وظيفة لكل نوع من المستخدمين:
قد يكون هناك تفكير بأن يكون للوحة التحكم البسيطة هذه أكثر من مستخدم, أو أكثر من مجموعة, وسأعتمد على فكرة مجموعة أكثر لأنها الأفضل في العمل, ولكل مجموعة خصائص ادارية محددة...
ستحتاج الى اضافة حقل آخر في فورم الدخول ولنفترض أنه Group Name ونضعه في المتغير $_POST['gname']
اذا عند البدء في تنفيذ الكود في الصفحة, فقط اضف التالي:
وهكذا.... وطبعا بنفس الطريقة اضف شروطا أخرى لتحديد مهام معينة لمستخدم محدد.... الخكود PHP:
if (($_SESSION['login']) && ($_POST['gname']==$confg['group1']))
{
//code for group 1
}
if (($_SESSION['login']) && ($_POST['gname']==$confg['group2']))
{
//code for group 2
}
فقط ضع ما تريد من بيانات في ملف config كما تلاحظ أنني استخدمت.
ربما نتحدث في المرة القادمة عن السيشن Session فله اساليب كثيرة وحيل برمجية تحتاج أن نلقي عليها نظرة....
بالتوفيق
ربما سريعا جدا لمن يفضلون استخدام قواعد البيانات بدلا من الملفات لحفظ معلومات المستخدمين والمجموعات, خاصة الكبيرة منها...
استدعي قاعدة البيانات كما اشرنا سابقا ونفذ عليها الاستعلام التالي:
المعلومات المخزنة في $result الآن تستطيع مقارنتها بما تريد, كلمة السر المدخلة, اسم المجموعة..... الخكود PHP:
$search_name=$_POST['uname'];
$query="select * from users as t1 where t1.name ='".$search_name."'"; //select the name
$result = mysql_db_query($dbname, $query) or die("Failed Query of " . $query);
معلومة سريعة جدا: استخدم ال FLAGS في قاعدة بياناتك, بحجم بايت واحد وتحمل القيمة صفر أو واحد, لتحدد بها معاملات كثيرة جدا, كخصائص تنفيذ أكواد معينة.... الخ
سأعطيك مثال سريع أنسخه لك من أحد التطبيقات التي أقوم ببرمجتها حاليا:
flag بسيط لتحديد نوع Item وفق تصنيف معين, فيظهر عند العرض في لوحة التحكم بالشكل الموجود بالكود كما ترى.كود PHP:
$thisrow=mysql_fetch_row($result);
if ($thisrow[6]==0)
$thisrow[6]="Not Approved";
$thisrow[6]="Approved";
لا تنسى أن هذه طريقة تستخدم ايضا للتأكد من حالة عنصر معين في قاعدة البيانات قبل تنفيذ اجراء عليه,
مثلا العنصر السابق في المثال الأخير: Not Approved لا يمكن اجراء معين عليه, لذا لابد من التأكد من حالته قبل التنفيذ والا طباعة رسالة تفيد مدير النظام بأن هذا خطأ أو غير مسموح..
تريد تعرف كيف؟؟؟
جرب بنفسك
بالتوفيق
لغة PHP والملفات النصية:
(تسلسل الكود الموجود بالموضوع غير مرتبط ببعضه, ولا يصلح لتكوين ملف كامل, انما هي حلول وأفكار لخطوات متعلقة بالقراءة والكتابة من ملف نصي)...
كثير من مطوري ويب يحتاجون الى تخزين بعض البيانات النصية البسيطة في ملفات txt عادية, ليست بيانات مهمة, بل غالبا ما تكون ملفات log أو events أو errors..... الخ
وأسهل الطرق التي نستخدمها لهذا الغرض هي القراءة والكتابة من خلال مصفوفة (كوسيط).
فالقراءة من ملف نستخدم لها الأمر البسيط التالي:
وهذا الأمر يقوم بقراءة (كل سطر) على أنه (عنصر) واحد في المصفوفة...كود PHP:
$read_array= file("2.txt");
عيب هذا الأمر هو أنه يخزن الناتج في مصفوفة أحادية البعد فقط,,,
الحل: استخدم FLAG عند كتابة الملف, لنفترض مثلا انك اعتبرت أن كل بداية لعنصر ثنائي ستكون مثلا ##number##
اذا يجب أن تكون مصفوفتك الثنائية كالتالي:
لذا افترض مجازا أن محتويات ملفك النصي كالتالي:كود PHP:
$array_2d = array (
“##1##” => array (
“error” => “404”,
“ip” => 127.0.0.1
),
“##2##” => array (
“error” => “404”,
“ip” => 255.255.255.255
)
);
##1##
404
127.0.0.1
##2##
404
255.255.255.255
الآن عليك الكتابة في مصفوفة جديدة (أقصد كتابة ما قرأته من الملف النصي وتم تخزينه في مصفوفة احادية, نريد وضعه في مصفوفة ثنائية)...
جرب أن تكتب دالة لتقوم بهذا, وللتسهيل عليك ساضع لك الأفكار التالية:
اعتبر ال Flag الذي اخترناه ##number## هو العلامة التي ستتكرر عندها الحلقة لكتابة المصفوفة الفرعية الصغيرة.
قبل بدء الحلقة عين متغير I الى القيمة 1 وهي القيمة التي يبدا من عندها العد للFlag.
ابدا الحلقة الكبيرة بالتأكد من أن قيمة عنصر المصفوفة الأحادية يساوي الflag الحالي. وطبعا تأكد من أن العنصر الحالي للمصفوفة موجود.. isset
الآن تخيل أنك داخل الحلقة الأولى, ماذا تريد؟ طبعا تريد أن تكتب عناصر المصفوفة الفرعية والتي ستكون قيمة الخطأ (404) ورقم ألاي بي... أو ايا كان عدد العناصر.
قم بانشاء حلقة اخرى لكتابة العناصر الداخلية للمصفوفة الصغيرة... ,اترك لك تخيل الشروط اللزمة لذلك.
بعد انتهاء الحلقة الصغيرة عين قيمة المتغير I الى:ربما تتساءل لماذا لم أنسخ لك هذا الكود مباشرة الى المتصفح لتقرأه وتستخدمه, الاجابة هو أنك يجب أن تفكر, فالمشاركة التي أبغيها هي وضع (أفكار وطرق واساليب) وعليك بالتفكير والتجربة...كود PHP:
$i++
=================
الآن قرأنا المصفوفة ووضعناها في مصفوفة ثنائية البعد,
هل تعرف أنه من الأفضل أن تمسح المصفوفة القديمة, لتخلي مكان بالذاكرة!!!!
هذا ايضا خطأ يقع فيه كثير من مبرمجي لغة PHP, وأراه في كثير من السكريبتات, متغيرات وخاصة مصفوفات كثيرة, نستخدمها كوسيط للقراءة ونستخلص منها كل ما نريده من متغيرات, وتنتهي الحاجة اليها, الا أنها تظل راقدة في الكاش بدون داعي, خاصة عندما يكون المتغير ضخم.
=================
استخدم أمرلادراج متغيرات في نهاية الدالة, فهو ممتاز جدا...كود PHP:
array_push
في احدى السكريبتات, شاهدت كود يقوم بقراءة مصفوفة ويضعها في مصفوفة مؤقته, ويقرأ عدد عناصرها ثم يقوم بادراج العناصر الجديدة وفقا لزيادة رقم العنصر الجديد (رقم العنصر الجديد = عدد عناصر المصفوفة القديمة + 1) ثم + 2 وهكذا....
لماذا لم يستخدم push بدلا من ارهاق الذاكرة بهذا الكم من العمليات.
استخلص من هذا: لا تلتف حول نفسك في الكود, ابحث عن أقصر الطرق, وأسرعها كفاءة
=================
الآن تأتي مرحلة الكتابة الى ملف,
أفترض أنك تكتب مصفوفة الى ملف, هذه المرة سأضع لك الكود مباشرة (نقلا من احدى السكريبتات التي أقوم ببرمجتها), واترك لك عملية فهم ما يجري:
الملحوظة المهمة, هي أنني هنا صنعت Flag وعينت قيمته الى: |كود PHP:
$array_str="";
While(list($key,$subarray) = each($mainarray))
{
$array_str.="$key|";
while(list($subkey,$value) = each($subarray))
{
$array_str.="$value|";
}
$array_str.="|";
}
$file_write="1.txt";
$fd = fopen($file_write,'a+') or die("Cant open file");
$write=fwrite($fd,$array_str);
الكتابة تتم في سطر واحد فقط, ويمكن جعل كل عنصر في سطر مستقل من خلال اضافة باراميتر الانتقال لسطر جديد في كود الخرج.
الأهم من هذا, هو أنني استخدمت باراميتر +a عندما فتحت الملف, وهذا الباراميتر يقوم بتوجيه المؤشر الى نهاية الملف مباشرة...
هل تعرف لماذا استخدمناه؟
لأنه ما دمت لا تحتاج البيانات السابقة الموجودة في الملف, اذا لا حاجة لاثقال الذاكرة بها, فقط افتح الملف واضف ما تريد من بيانات واغلق مرة أخرى....
لا أعرف ماذا لدينا أيضا بخصوص الكتابة الى الملفات, لا يحضرني شيء محدد حاليا, لكني حاولت استعراض السيناريو التقليدي, وتعرضت لنقاط يهملها الكثير, وتسبب بطء كبير للكود ووقت تنفيذه...
بنهاية هذه الجولة السريعه, أتمنى أن تجربوا بأنفسكم, فالبرمجة بصفة عامة لا تأتي بالنسخ واللصق كما يفعل الكثيرون, بل تحتاج منك أن (تفهم - تجرب - تكتسب الخبرة)
أحببت أن أخبركم, أنني سأبدأ ان شاء الله المشاركة القادمة بالتحدث عن PHP & XML.....
خاصة وأن اصدارة PHP5 بها الكثير من التحسينات الخاصة بتوافقية اللغة مع XML,
اضافة الى وجود كثير من تطبيقات web2.0 المعتمدة على XML القياسية, مما يجعل غالبية مطوري ويب PHP في احتكاك دائم مع هذا الموضوع تحديدا..
لن أطيل كثيرا, ولكن باذن الله ربما نتعلم مباديء اساسية ستساعدك كمطور على انشاء تطبيقات ويب لتوليد خرائط لموقعك, أو روابط RSS اتوماتيكية, من خلال تعبئة فورم بسيط...
أخيرا, ربما لن أكتب خلال ايام الجمعه والسبت (أجازتي الأسبوعية ) واستغلها أكثر في القراءة فقط...
بالتوفيق.
عفوا, غادرت الموضوع, ثم تذكرت بعض النقاط فقررت العودة لأكتبها
أفكار بخصوص الكتابة الى الملفات:
يمكنك وضع حقول مخفية في أي نموذج يقوم المستخدم بتعبئته, وتصدير بيانات هذه الحقول الى ملف نصي مباشرة, هل تعرف مثل ماذا؟؟
اشهرها المواقع التي تحصل على بريدك الالكتروني وتقوم بتعبئة mail list مباشرة, هذا الملف يكون مربوط بسكريبت ارسال رسائل بريدية دورية, أو يتم تبادله مع مواقع أخرى, وهكذا....
وبعضها ملفات احصائية, فمثلا, من خلال خدمة WMI التي سبق وتحدثنا عنها, يمكنك الحصول على معلومات خاصة بنوع المتصفح, ودقة الشاشة..... الخ
ثم: دالة بسيطة تقرأ الملف وتقارن الخرج, اذا كان المتصفح IE عين المتغير الى القيمة السابقة + واحد,,, وهكذا.
سيخرج عندك نتيجة كلية احصل منها على النسبة المئوية بقسمة عدد IE على عدد المستخدمين الكلي, وهكذا ايضا مع الباقي.... الخ
من الاستخدامات المفيدة ايضا: تسجيل بيانات محاولات الدخول الفاشلة الى لوحة تحكم أو صفحات ممنوعة..
مثلا اقوم بتطبيق هذه الطريقة من خلال تسجيل أرقام آي بي المستخدم, وفي حالة فشل الدخول, يتم تصدير هذه البيانات مباشرة الى ملف Log....
بالتوفيق
دوال هامة لا غنى عنها
لغة بي اتش بي مليئة بالدوال التي لا نهاية لها، ومن مرونة اللغة ان هناك للهدف الواحد عدة دوال ولكن بأساليب مختلفة ..
الدوال التالية يمكن اسناد قيمها لمتغير معين ومن بعد عرض قيمة المتغير أو العرض مباشرة بإستخدام تعليمة الطباعة الخاصة (echo).
error_reporting()
يتم بواسطة هذه الدالة التعرف على الأخطاء في وقت التنفيذ وهذه الدالة ضرورية لضمان إستمرار عمل الموقع كما يريد مبرمج الموقع في حال حدوث أخطاء.
isset()
يتم بواسطة هذه الدالة تحديد ما إذا كان تم تحديد قيمة لمتغير معين أم لا فمثلا ،،
في حال كان هناك أي قيمة مسندة للمتغير $p إذا إذهب لخيارات طباعة الصفحة.
var_dump()
هذه الدالة لها فائد كبيرة في طباعة المتغيرات ومعلومات عن المتغيرات وهذه فائدة رائعة وضرورية لجميع المبرمجين ..
حدد موقع بي اتش بي الرسمي شكل هذه الدالة
ونظرا لأن البعض قد يستغرب عمل هذه الدالة فهذا مثال من الموقع الرسميكود PHP:
void var_dump ( mixed $expression [, mixed $expression [, $... ]] )
ناتج تنفيذ المثال السابق هوكود PHP:
<?php
$b = 3.1;
$c = true;
var_dump($b, $c);
?>
ini_set and ini_getكود PHP:
float(3.1)
bool(true)
هذه الدوال الخاصة بالتعامل مع أدوات وخيارات عامة قليل ما نراها مستخدمة، مع انها ضرورية جدا للمبرمجين .
ini_set تستخدم في إسناد قيم لمتغيرات وخيارات أساسية.
ini_get تستخدم في التعرف على قيم المتغيرات الأساسية.
المثال التالي يوضح اكثر ..
المثال السابق وضح الكثير والتالي هي المخرجاتكود PHP:
<?php
/*
Our php.ini contains the following settings:
display_errors = On
register_globals = Off
post_max_size = 8M
*/
echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));
function return_bytes($val) {
$val = trim($val);
$last = strtolower($val{strlen($val)-1});
switch($last) {
// The 'G' modifier is available since PHP 5.1.0
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
?>
set_time_limitكود:display_errors = 1 register_globals = 0 post_max_size = 8M post_max_size+1 = 9 post_max_size in bytes = 8388608
إسناد وقت معين لتحديد لإجراء تنفيذ كود بي اتش بي.
يجب على مبرمج php معرفة أكبر قدر ممكن من الدوال المساعدة وذلك لضمان قوة البرنامج
اضافة ممتازة جدا أخ محمد,
بالفعل, استخدام الدوال يمثل أحد أهم عناصر القوة في لغة PHP, وعليك كمبرمج أن لا تتوقف عن البحث بخصوص الدوال سواء القياسية منها أو المخصصة (التي أنشأها مستخدمون آخرون)...
ربما مشاركتك هذه كانت البداية للحديث عن دالة simpleXML الرائعة جدا...
فاصل للكتابة والتلخيص ثم اعود..
SimpleXML دوال ظهرت مع PHP5 لتمنح المستخدمين مزيد من المرونة في التعامل مع ملفات XML....
الكود السابق استدعينا ملف xml موجود بنفس مسار ملف PHP وقمنا باضافة محتويات جديدة nodes....كود PHP:
if (file_exists('store.xml')){
$xml = simplexml_load_file('store.xml');
// add new data to XML tree
$advice=$xml->AddChild('advice');
$advice->addChild('name',$xml_name);
$advice->addChild('dep',$xml_dep);
$advice->addChild('sub',$xml_sub);;
$advice->addChild('cont',$xml_cont);
foreach ($xml->advice->name as $name){
echo $name;
}
}//end of if
شرح سريع: simple_load_file تستدعي ملف وتخزنه متغير xml, استخدم دالة التأكد من ملف أولا حتى لا يؤدي الى ظهور أخطاء..
اضف النود node أينما تريد, من السطر السابق لاحظ أنني أضفت نود جديد تحت الرووت مباشرة...
بعدها أضف الرووت الفرعي, وقيمته مباشرة...كود PHP:
$advice=$xml->AddChild('advice');
المتغيرات السابقة مقروءة من نموذج كالتالي:
==================كود PHP:
$xml_name = $_POST['name'];
لمن يرغبون في التعامل مع دوال dom و Simple في نفس السكريبت:
هذه أوامر تحويل المتغير من والى:
كود PHP:
$sim_xml=simpleXML_import_dom($dom);
if (!$sim_xml){
echo 'Error transfering to SimpleXML';
}
$dom_xml=dom_import_simpleXML($sim_xml);
if (!$dom_xml){
echo 'Error transfering to DOM';
}
دوال الوقت
الوقت ضروري جدا في برمجة أي موقع، والأهم ان لغة php مليئة بدوال الوقت، قد يحتار الكثير من المبرمجين في تحديد عامل الوقت المناسب ،،
القائمة التالية تحتوي على جميع المعلومات عن دوال الوقت
الدالة الأساسية للوقت
يكون الشكل الأساسي لدالة الوقت هو
يتم طلب استدعاء للدالة Date حيث أن هذه الدالة هي المسؤولة عن تحديد الوقت، وكما تلاحظ وجود الكثير من الحروف والرموز والإشارة بين الأقواس.كود PHP:
<?PHP
echo date ("D dS F, Y g:i:s a")
?>
كل حرف من الحروف التالية يأتي بين الأقواس في دالة date يكون مسؤول عن وظيفة معينة
الحروف الخاصة بالوقت
الحرف التفسير
A يعطي الوقت حسب 12 ساعة مثل PM أو AM
a حرف a الصغير يأتي بنفس النتيجة السابقة ولكن الفرق هنا النتيجة بحرف صغير مثل am pm
G الساعات خلال 24 ساعة مثل 17
g الساعات خلال 12 ساعة مثل 4
H الساعات خلال 24 ساعة لكن مع وجود أصفار مثل 14
h الوقت خلال 12 ساعة مع وجود صفر مثل 08
الحروف والرموز الخاصة بالتاريخ
D اليوم مثل Fri
d اليوم مثل 02
F اسم الشهر كتابة حرفية كاملة مثل January
M اسم الشهر بإختصار مثل Jan
m الشهر بالأرقام مثل 01
S التسميات التي تصف اليوم من الشهر مثل st, nd, rd, th
t عدد أيام الشهر مثل 31
W رقم الأسبوع بالنسبة للنسة مثل الاسبوع رقم 19
Y السنة بشكل كامل مثل 2008
y الحرف الصغير من الرمز السابق يعطي السنة بالأرقام لكن بشكل مختصر مثل 08
z رقم اليوم من السنة مثل 203
الحروف السابقة تعطي نفس النتائج المقابل لها في حال تم إدراجها في قوسيين دالة الوقت وتتم الكتابة داخل إشارة " " من القوسيين أما باقي الرمز غير هذه الرموز فتطبع على الشاشة كما هي مثلا لو تم وضع الرمز : بين الرموز فيظهر على الشاشة بنفس الشكل :
درس هام
ارسال للبريد
عملة ارسال بريد إلكتروني سهلة جدا في لغة بي اتش بي ،،
فهناك دوال جاهزة لهذه العملية ,,
نبدأ الان العملية البسيطة بكود html خاص بتحديد جداول الإدخال
ادرج الكود السابق في اي صفحة شئت وسميها بأي اسم ..كود:<form method="post" action="contact.php"> العنوان:<br /> <input type="text" name="subject" size="20"><br /> بريد المستقبل:<br /><input type="text" name="email" size="20"><br /> الرسالة:<br /><textarea cols="20" rows="5" name="comment"></textarea><br /> <input type="submit" value=" Submit "> </form>
الكود التالي هو الخاص بإرسال البريد ويجب وضعه في صفحة contact.php
الكود السابق يعمل على استقبال البيانات من جدوال المدخلات التي تم وضعها في كود html السابق ثم تقوم بالإرسال، الدالة المسؤولة عن الإرسال في بي اتش بي هي mail().كود PHP:
<?
$subject = $_POST['subject'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$submit = $_POST['submit'];
if($submit)
{
mail("name@arabsoftware.net", "$subject", "$email", "$comments");
}
?>
استخدم هذه الطريقة لاضافة محتويات الى متغير حرفي, (.=).....كود PHP:
$body="line 1 \n";
$body.="line2 \n";
$body.="line3 \n";
===============
اضافات ممتازة جدا يا محمد...
الله يجزيك الخير ويزيدك من علمو
الله يعطيك ألف عافيه عالمجهود المميز........
المفضلات