سحب rss في وحفظة في القاعدة
السلام عليكم
اخواني تعبت كثير ما عرفت كيف اسحب rss بالبرمجه واحفظها بالقاعدة واستعرضها في موقعي اريد سحب هذا الرابط http://news.google.com.sa/news?pz=1&cf=all&ned=ar_sa&hl=ar&output=rss اولا ناخد كل ما فى الرابط ثم نحفظه فى قاعدة البينات ثم نعرضه مع تعدد صفحات وعند الضغط على احدهما يحول على صفحة اولا وبعد ذلك يوجد رابط يحولنى على الحبر بطريقة غير مباشر ياليت احد يتكرم على ويفيدني جزاكم الله خير
3 إجابات
شكررررررررررررررررررررررررررررررررررررا
بواسطة: mrcode تعديل: mrcode 0 من 0 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
ان كنت تريد الاستغناء عن قواعد البينات وعرض 3 خلايات فى الصف ومع نظام الكاش اليك هذا الكود:
<?php include \"core/RSS.php\"; $rss = new lastRSS; $rss->cp = \'UTF-8\'; $rss->cache_dir = \'cache\'; $rss->cache_time = 1200; header(\'Content-Type: text/html; charset=UTF-8\'); if ($rs = $rss->get(\'http://news.google.com.sa/news?pz=1&cf=all&ned=ar_sa&hl=ar&output=rss\')) { $i =1; echo \"<table dir=\'rtl\' align=\'right\'><tr>\"; foreach ($rs[\'items\'] as $item) { $url = html_entity_decode($item[\'link\']); $parts = parse_url($url); parse_str($parts[\'query\'],$params); ?> <td valign=\"top\"> <table width=\"100%\"> <tr> <td> <a href=\"<?php echo $params[\'url\'];?>\"> <?php echo $item[\'title\'];?> </a> </td> </tr> <tr> <td> <?php echo html_entity_decode($item[\'description\']); ?> </td> </tr> </table> </td> <?php if (($i % 3) == 0) { echo \"</tr><tr>\"; } $i++; } echo \"</tr></table>\"; } ?>وفى هذا الكود $rss->cache_dir = \'cache\'; $rss->cache_time = 1200; الجملة دى معاناها ان لابد من عمل مجلد اسمهcache لوضع فيه التغذية بدل ما تجيبها كل رفرش و تقدر تحدد تجدد كل كام دقيقة او كام ساعة بواسطة: MacOS 1 من 1 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا طريقة اكثر من رائعة واعجبتنى كثيرا طريقتك فى تقسم الخلايا
اليك شرح كل شى,
اولا ستقوم بتحميل هذا الكلاس لجبل المحتوى من التغذية وهذه الدالة لتعدد الصفحات ثم عمل ملف يحتوى على اعدادت القاعدة ثم انشاء مجلد لوضع الكلاسات والدوال لنفرض اننا سنسميه core اذن التكوين سيكون كالتالى core/db.php core/pagination.php core/RSS.php index.php work.phpالأن اليك الاسكربت صفحة صفحة اولا صفحة الاتصال بقاعدة البينات: $db = @mysql_connect(\'localhost\', \'root\', \'\') or die(\"لا نستطيع الاتصال بالسرفر\"); @mysql_select_db(\'GoogleKSA\', $db) or die(\"Could not select database\");طبعا سوف تنشى قاعدة بينات باسم GoogleKSA كمثال وتكوينها كالتالى CREATE TABLE `googleksa` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`id`) );ناتى لصفحة عرض وجلب الاخبار وهذا تكوينها الكلى: include \"core/db.php\"; include \"core/RSS.php\"; include \"core/pagination.php\"; $rss = new lastRSS; $rss->cp = \'UTF-8\'; if ($rs = $rss->get(\'http://news.google.com.sa/news?pz=1&cf=all&ned=ar_sa&hl=ar&output=rss\')) { foreach ($rs[\'items\'] as $item) { if (!mysql_fetch_array( mysql_query(\"SELECT id FROM `GoogleKSA` where `title` = \'\".$item[\'title\'].\"\'\") )) { $url = html_entity_decode($item[\'link\']); $parts = parse_url($url); parse_str($parts[\'query\'],$params); mysql_query(\"INSERT INTO `GoogleKSA` ( `title` , `url` , `content` ) VALUES ( \'\".$item[\'title\'].\"\', \'\".$params[\'url\'].\"\', \'\".html_entity_decode($item[\'description\']).\"\' )\"); } } } $page = (int) (!isset($_GET[\"page\"]) ? 1 : $_GET[\"page\"]); $page = ($page == 0 ? 1 : $page); $perpage = 5; $startpoint = ($page * $perpage) - $perpage; $sql = @mysql_query(\"select * FROM `GoogleKSA` order by id asc LIMIT $startpoint,$perpage\"); while($Row = mysql_fetch_array($sql)) { echo \'<p> <a target=\"_blank\" href=\"work.php?show=\'.$Row[\'id\'].\'\"> \'.$Row[\'title\'].\' </a> </p>\'; } echo Pages(\"GoogleKSA\",$perpage,\"index.php?\");
الاعداداتاولا انا استعملت هذا الكود$url = html_entity_decode($item[\'link\']); $parts = parse_url($url); parse_str($parts[\'query\'],$params);للاتيان بمتغيرات الرابط لكى نختار منه الرابط المباشر كالتالى $params[\'url\'] بعد ذلك $perpage = 5;هذا هو عدد الاخبار فى كل صفحة الان صفحة work.php هذه الصفحة التى سيعرض فيها التفاصيل القصيرة للخبر وايضا التى ستحولك للرابط التكوين الكامل: <?php include \"core/db.php\"; if (isset($_GET[\'show\'])) { $new_id = intval($_GET[\'show\']); $sql = mysql_query(\"select * FROM `GoogleKSA` where `id` = \'$new_id\'\"); if(!$row = mysql_fetch_assoc($sql)){ exit( \'غير موجود\' ); } ?> <table align=\"right\" width=\"100%\"> <tr> <td align=\"right\"> <a href=\"work.php?go=<?php echo $row[\'id\']?>\"> <?php echo $row[\'title\']?> </a> </td> </tr> <tr> <td> <?php echo $row[\'content\']?> </td> </tr> </table> <?php } elseif (isset($_GET[\'go\'])) { $new_id = intval($_GET[\'go\']); $sql = mysql_query(\"select * FROM `GoogleKSA` where `id` = \'$new_id\'\"); if(!$row = mysql_fetch_assoc($sql)){ exit( \'غير موجود\' ); } header(\"Location: \".urldecode($row[\'url\'])); } ?>هنا وضعت شرطين اولالو وجد متغير show يحمل الـid تبع الخبر سوف نعرض الخبر مع التفاصيل مع الرابط المباشرثانيالو جد متغير go يحمل نفس الـid سوف ناتى بالعنوان المباشر ونحول له وهذا غير مهم بامكانك وضع الرابط المباشر فى اول مرة بتغير:<a href=\"work.php?go=<?php echo $row[\'id\']?>\"> <?php echo $row[\'title\']?> </a>الى <a href=\"<?php echo $row[\'url\']?>\"> <?php echo $row[\'title\']?> </a> بواسطة: MacOS 4 من 4 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا شرح ممتاز وبوركت عليه,, |