لسلام عليكم ...
درسنا اليوم طريقة عمل ملف خلاصة الموقع (
RSS) باستخدام قاعدة البيانات (
MySQL) ...
قد يكون هذا سهلا لو أردنا عمله بامتداد
PHP و لكن أكبر مشكلة هي لو أردنا إمتداد ملف الـ
RSS بـ
XML ...
قد يعتبر الأمر بعد هذا الكلام مستحيلا ، لكن لا تقلق فلا مستحيل مع البرمجة

...
نبدأ على بركة الله ...
أولا نحن نحتاج لتعديل ملف
.htaccess ، بإضافة هذا السطر فقط ...
كود PHP:
AddType application/x-httpd-php .xml
و بهذا جعلنا كل ملف XML يعمل كملف PHP ...
لا تقتصر هذا على ملفي PHP و XML فقط ، بل يمكنك إستخدام هذه الطريقة مثلا لتحويل ملفات الـ HTML إلى PHP ...
ثانيا نقوم بعمل ملف XML عادي ( اي بامتداد XML ) ، و نكتب أول سطر ...
كود PHP:
<? header('Content-type: text/xml'); ?>
لقد إستخدمنا هنا وسم PHP ، و هذا لأننا جعلنا بالأعلى كل ملف XML يعمل كملف PHP ...
و الآتي هو أهم ما يمكن وضعه بالأعلى ( للعلم يمكنك وضع أوسمة أخرى ) ...
كود PHP:
<rss version="2.0">
<channel>
<title>aLM3RiFa</title>
<description>...</description>
<link>http://www.alm3rifa.info/</link>
السطر الأول به تعريف لنسخة الـ RSS ...
السطر الثاني إفتتاح للعمل ...
السطر الثالث هو عنوان الموقع و أسفل منه وصف للموقع و أسفله رابط الموقع ...
الآن إعدادات الإتصال بقاعدة البيانات ، يمكنك إستدعاءه بالدالة INCLUDE أو REQUIRE إن كنت تستخدم ملف إعدادات عام للموقع ( مثل CONFIG.PHP )
كود PHP:
<?
$dbhost = 'localhost';
$dbuname = 'root';
$dbpw = '';
$dbname = 'rss';
$conn = @mysql_connect($dbhost ,$dbuname ,$dbpw ) or die('error');
mysql_select_db($dbname ,$conn) or die('error');
بعد ذلك نقوم بتحديد الجدول و الحقول المراد إستخراج المعلومات منها ...
كود PHP:
$query=mysql_query("SELECT `id`, `title`, `content` FROM topics ORDER BY `id` DESC LIMIT 0,5");
while($result = mysql_fetch_array($query)){
?>
الجدول المستخدم ...
كود PHP:
CREATE TABLE `topics` (
`id` int(11) NOT NULL auto_increment,
`title` text collate utf8_unicode_ci NOT NULL,
`content` text collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT AUTO_INCREMENT
تفصيل هذا الإستعلام : إستخدمت في هذا الدرس جدول مواضيع به ثلاث حقول ( المعرف ، العنوان ، المحتوى ) بحيث أن الإستخراج يكون لخمس
آخر مواضيع ، ثم نضع النتيجة في مصفوفة عبر الدالة MYSQL_FETCH_ARRAY و في حلقة تكرار ...
الآن نضع هذا الكود ...
كود PHP:
<item>
<title><?=htmlentities(strip_tags($result['title'])); ?></title>
<description> <?=htmlentities(substr($result['content'],0,60));?></description>
<link>http://www.alm3rifa.info/?topic=<?=$result['id'];?></link>
</item>
<? } ?>
نضع كل المحتوى بين وسمي <item> الإفتتاحي و الختامي و هو ما يمثل إدراجا واحدا و بداخله عنوان الموضوع في الوسم <title> و الوصف <description> الذي سيظهر في حالتنا على أنه جزء من المحتوى لأننا إستخدمنا الدالة SUBSTR و حددنا عدد الحروف بـ 60 ، ثم رابط الموضوع الكامل <link> و الذي سيذهب إليه الزائر بعد الضغط على عنوان الموضوع ، ثم نغلق حلقة التكرار ... و بهذا سيتكرر المحتوى الواقع بين وسمي <item> الإفتتاحي و الختامي خمس مرات ...
و في النهاية نغلق وسم العمل و وسم الـ RSS
كود PHP:
</channel>
</rss>
أتمنى أن يفيدكم الدرس ...
الآن مع مثال حي ، من
هنا ...
تحيتي ...
http://www.montadaphp.net/showthread.php?t=923