السلام عليكم ورحمة الله وبركاته
أحياناً نحتاج الى كتابة كود أو سكريبت يقوم بحفظ البيانات من قاعدة البيانات database الى ملف XML
والموضوع قد يبدو معقداً او مجهولا للوهلة الأولى لكنه سهل جداً كسهولة الكتابة الى المتصفح
في هذا الدرس سنفترض أننا نريد حفظ بيانات بعض الأشخاص من جدول users في ملف XML لاستخدامه لاحقا في غرض آخر
البيانات المطلوب حفظها هي عبارة عن: الاسم، النوع، السن والعنوان
الكود التالي يقوم بالمطلوب بالضبط:
واليكم شرح الكود:كود PHP:<?
header("Expires: Mon, 1 Jan 1996 01:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"users.xml\"");
echo "<?xml version=\"1.0\" encoding=\"windows-1256\"?>\n";
$users = @mysql_query("SELECT * FROM users");
echo "<users>\n";
while($user = @mysql_fetch_array($users))
{
echo "\t<user>\n";
echo "\t\t<name>";
echo $user['name'];
echo "</name>\n";
echo "\t\t<gender>";
echo $user['gender'];
echo "</gender>\n";
echo "\t\t<age>";
echo $user['age'];
echo "</age>\n";
echo "\t\t<address><![CDATA[";
echo $user['address'];
echo "]]></address>\n";
echo "\t</user>\n";
}
echo "</users>\n";
?>
في السطر الأول:
قمنا بتحديد تاريخ انتهاء صلاحية للملف باي تاريخ في الماضي، حتى يعتبره المتصفح دائما منتهي الصلاحية ولا يقوم بجلبه من الكاشكود PHP:header("Expires: Mon, 1 Jan 1996 01:00:00 GMT");
في السطر الثاني:
قمنا بتحديد تاريخ الملف نفسه بتاريخ اليوم، وتاريخ الملف هو التاريخ الذي يظهر عند عرض بيانات الملف في ويندوزكود PHP:header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
في السطر الثالث والرابع والخامس:
قمنا باضافة بعض الاكواد الاضافية والتي من وظيفتها منع جلب الملف من الكاش أيضاًكود PHP:header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
في السطر السادس:
قمنا باخبار المتصفح بضرورة تحميل الملف save والا يتم عرضه openكود PHP:header("Content-Type: application/force-download");
في السطر السابع:
حددنا اسم الملف "users.xml"كود PHP:header("Content-Disposition: attachment; filename=\"users.xml\"");
في السطر الثامن:
قمنا بطباعة هيدر header ملف xml وحددنا الترميز بـ windows-1256، طبعا يمكنك اختيار الترميز الذي يناسبك غير هذا الترميز، يعني مثلا لو البيانات التي تقوم بجلبها ترميزها utf8 فينبغي عليك تحديد نفس الترميز لملف xmlكود PHP:echo "<?xml version=\"1.0\" encoding=\"windows-1256\"?>\n";
في السطور التالية الاستعلام وطباعة البيانات
وكما تلاحظ فالبيانات قد بدأت بالوسم [l]<users>[/l] والذي سيحتوي على كل المستخدمين
وانتهت بالوسم [l]</users>[/l] والذي يفيد انتهاء عرض بيانات جميع المستخدمين
أيضاً يتم عرض كل مستخدم بالطريقة التالية:
وهكذا حتى انتهاء جميع المستخدمينكود:<user> بيانات المستخدم </user>
كانت هذه بداية بسيطة لكيفية التعامل مع ملفات XML من خلال PHP
واي تعليقات او استفسارات يا هلا :smailes3:
منقول http://www.montadaphp.net/showthread.php?t=599


رد مع اقتباس
