PDA

View Full Version : مشکل در کدی برای دریافت اخبار از خبر خوان (rss)



mohammad-gh
یک شنبه 30 آذر 1393, 16:23 عصر
با سلام
کدی رو برای دریافت اخبار از خبر خوان نوشته ام
این کد روی یک سایت درست عمل میکنه , اما روی سایتهای دیگر درست عمل نمکنه
علتش چی می تونه باشه



$xml = simplexml_load_file("http://iran-karyab.com/rss.xml");

foreach( $xml->channel->item as $value ):
$title = (string)$value->title;
$link = (string)$value->link;
$desc = (string)$value->description;

echo "title: $title <p>".
"link: $link <p>".
"description: $desc <hr />";
endforeach;


این هم نمونه تو سایتی که درست عمل کرده
http://mycityjobs.ir/rssreader3.php

pejman_view
یک شنبه 30 آذر 1393, 16:38 عصر
با سلام

لطفاً آدرس سایتی که درست عمل نکرده هم بدید چون سایت هایی که درست عمل کرده است که درست بوده باید تفاوت را در سایت هایی که درست عمل نکرده ببینیم.

با تشکر

kabootar_y
یک شنبه 30 آذر 1393, 18:17 عصر
من سایت هایی رو دیدم که پرمیشن صفحه rss شون رو طوری قرار دادن که فقط میتونی خودت در مرورگز باز کنی و بخونی و توسط هیچ برنامه ای نمیشه استفاده کرد. شاید سایتت این طوری باشه.

دوستمون پزمان خان راست میگن آدرس سایت هایی که عمل نمیکنه رو بذار. اونا مهم ترن

mehran6764
یک شنبه 30 آذر 1393, 19:10 عصر
واسه بشه از RRS سایتی مطلب خوند باید سایت مبدا RRS اش فرمت استاندارد داشته باشد ، اینم بگم بعضی از اسکریپت ها هستن که میشه از خونده شدن RRS جلوگیری کرد. بعضی از وب مسترها تو وبلاگ یا سایت اشون استفاده می کنن.

mohammad-gh
یک شنبه 30 آذر 1393, 22:34 عصر
این هم ادرس سایتی که درست نشون نمیده
http://starforosh.com/rssreader3.php

pejman_view
دوشنبه 01 دی 1393, 00:31 صبح
این هم ادرس سایتی که درست نشون نمیده
http://starforosh.com/rssreader3.php

سلام

محمد جان احساس می کنم سوالتون یکم گیج کننده بود پس شما با rss خواندنتون از سایت های مختلف مشکل نداشتید فقط مشکلتون این بوده که اسکریپتتون اجرا نمی شده.

error_reporting(E_ALL & ~E_NOTICE);


این را اول کد خود بزنید باید ارور شما را نشان دهد. اگر نشان نداد.
تو یه فایل این رو بنویس ببین چی می گه:


if(function_exists(simplexml_load_file)) echo 'true'; else echo 'false';

اگه true داد حداقل می دانیم مشکل از این اکستنشن نیست اما اگر فالس داد باید با مدیر سایت تماس بگیرید.

mohammad-gh
دوشنبه 01 دی 1393, 15:13 عصر
اگه true داد حداقل می دانیم مشکل از این اکستنشن نیست اما اگر فالس داد باید با مدیر سایت تماس بگیرید.
هر دو خط رو گذاشتم تو فایل , البته true داد
می تونید ببنید
http://starforosh.com/rssreader3.php

id1385
دوشنبه 01 دی 1393, 15:44 عصر
با سلا
این کلاسو استفاده کن
شاید خیلی اصولی نباشه ولی من توی بیشتر سایتها ازش استفاده کرده اوم و همیشه هم جوابگو بوده

کلاس:

<?php
class rssReader
{
var $get_url;
var $get_limit;
public function rss_result($rssUrl,$rssLimit)
{
set_time_limit(0);
$return_result = array();
// Set variable
$this->get_url = $rssUrl;
$this->get_limit = $rssLimit;
// Load XML file
$xmlObj = new DOMDocument();
$xmlObj->load($this->get_url);
// Manage item tag
$itemTag = $xmlObj->getElementsByTagName('item');
// Check rss for number of item tag
$nums = 0;
foreach($itemTag as $aabb)
{
$nums++;
}
// Check limit
if($nums > $this->get_limit)
{
$loopNum = $this->get_limit;
}
else
{
$loopNum = $nums;
}
// Read rss nodes

for($i=0;$i<$loopNum;$i++)
{
$itemTitle = $itemTag->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$itemLink = $itemTag->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$return_result = ['title' => $itemTitle, 'description' => $itemLink];
}
// Echo rss body
return $return_result;
}
}


?>




استفاده :

if(class_exists('rssReader')){
$reader = new rssReader();
$rssValues = $reader->rss_result($Config['url'], $Config['count']);
var_dump($rssValues);
}




نمونه :

if(class_exists('rssReader')){
$reader = new rssReader();
$rssValues = $reader->rss_result('http://www.tabnak.ir/fa/rss/allnews', 10);
var_dump($rssValues);
}




در کلاس بالا نود هایی که میخواهید رو می تونید مشخص کنید
// Read rss nodes

for($i=0;$i<$loopNum;$i++)
{
$itemTitle = $itemTag->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$itemLink = $itemTag->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
$return_result = ['title' => $itemTitle, 'description' => $itemLink];
}

title , description اسامی نودهایی هستن که مورد استفاده بوده


در تصویر پیوستی اخبار سایت رسا را فراخوانی توسط همین کلاس فراخوانی کرده ام

موفق باشید

php_zone
دوشنبه 01 دی 1393, 17:24 عصر
بهتره از کلاس domdocument استفاده کنید
شاید rss اون سایت استاندارد نیست که نمیاره