article

ساخت فید خوان آر اس اس (RSS Feed Reader) با PHP

php-rss-reader

همانطور که می دانیم استفاده از فید آر اس اس (RSS Feed یا خوراک وب) یکی از روش های متداول و کاربردی برای اطلاع از آخرین به روز رسانی محتوای سایت ها و وبلاگ ها است که خیلی از کاربران ترجیح می دهند از این طریق مطالب صفحه مورد علاقه خودشان را پیگیری و دنبال کنند، اما استفاده از این امکان تنها به همین مورد محدود نمی شود، خرجی RSS قابلیتی را فراهم می کند که می توانیم به فرض لیستی از مطالب به روز سایت ها یا وبلاگ ها را به صورت لینک باکس طراحی کرده و در وبلاگ یا سایت خود به نمایش درآوریم یا خلاصه ای از تازه ترین مطالب بخش های مختلف سایت ها یا وبلاگ های مختلف را در صفحه سایت یا وبلاگمان به بازدیدکننده گان نمایش داده و یا هر ایده ی دیگری که به ذهنمان می رسد را با اطلاعات موجود در فید اجرایی کنیم، به هر صورت با ذکر این مقدمه قصد داریم نحوه ساخت فید خوان آر اس اس (RSS Feed Reader) را با برنامه نویسی PHP آموزش دهیم.

فیدخوان آر اس اس (RSS Feed Reader) چیست؟


هر فید وب حاوی اطلاعاتی در چارچوب زبان XML است که در فایلی با همین پسوند ذخیره و نگهداری می شوند، به طور معمول این اطلاعات درون تگ های XML درج شده اند و به صورت خام چندان خوانا و قابل استفاده نیستند، به همین دلیل به برنامه یا اسکریپتی نیاز خواهیم داشت تا فایل فید را دریافت، اطلاعات موجود در آن را تجزیه و تحلیل نموده و در نهایت مطابق با هدف و نیازمان به خروجی صفحات HTML ارسال کند، با این تفسیر منظور از فیدخوان آر اس اس (RSS Feed Reader) برنامه ای است که قابلیت استخراج اطلاعات فیدهای RSS را داشته باشد و بدین منظور در وب به طور معمول یکی از زبان های برنامه نویسی سمت سرور مانند PHP مورد استفاده قرار می گیرد.

آشنایی با شیوه نگارش (Syntax) فید آر اس اس (RSS Feed)


قبل از اینکه به قسمت کدنویسی PHP بپردازیم بد نیست با شیوه نگارش (Syntax) یک نمونه فید آر اس اس (RSS Feed) آشنا شویم چرا که برنامه PHP که خواهیم نوشت ابتدا محتوای فایل XML مقصد (فید آر اس اس) را به عنوان اطلاعات ورودی دریافت و سپس تجزیه تحلیل خواهد کرد، بر همین اساس یک فید آر اس اس معمولی از تگ های خاصی به زبان XML استفاده می کند که در نمونه زیر ساختار کلی آن درج شده است:
<?xml version="1.0" encoding="UTF-8"?> 
<rss version="2.0"> 
<channel>
<title>عنوان فید</title>
<link>https://webgoo.ir</link> 
<description>توضیح</description>
<language>fa</language>
<copyright>Copyright</copyright>
<item>
<title>عنوان مطلب</title>
<description>توضیح مطلب</description>
<link>لینک مطلب</link>
<guid>لینک مطلب</guid>
<pubDate>تاریخ مطلب به میلادی</pubDate>
<source url="https://webgoo.ir/rss.xml">وبگو</source> 
</item>
</channel>
</rss>
توضیح:
- هر فید آر اس اس از تگ های کلیدی تشکیل شده که هر کدام برای نگهداری محتوای خاصی کاربرد دارند، به طور مثال تگ title عنوان مطلب و تگ link آدرس URL مطلب را در خود جای می دهند، یا از description برای پیش نمایش مطلب و pubDate برای درج تاریخ ایجاد آن استفاده می کنیم.
- کد PHP که در ادامه بررسی خواهیم کرد با دریافت فایل XML فید به عنوان ورودی، تگ های موجود در آن را تجزیه کرده و نتایج به دست آمده را به نحو دلخواه در خروجی نمایش می دهد.

کد PHP فید خوان آر اس اس (RSS Feed Reader)


برای استخراج و نمایش محتوای فیدهای آر اس اس در سایت یا وبلاگمان (در صورت استفاده از هاست و دامنه شخصی) می توانیم از توابع زیر که به زبان PHP نوشته شده اند استفاده کنیم، بدین منظور کافی است آدرس فید را جایگزین مقادیر پیش فرض در کد نمائیم.
<?php
//تنظیمات
$url = 'https://webgoo.ir/rss.xml';//آدرس فید
$num = '5';//تعداد آیتم

//تبدیل اطلاعات فید به آرایه
function xmlToArray($text){
    $regexp = '/<(\w+)[^>]*>(.*?)<\/\\1>/s';
    preg_match_all($regexp, $text, $match);
    $loop = 0;
    
    foreach($match[1] as $key=>$val){
        if(preg_match($regexp, $match[2][$key])){
            @$array[$val][$loop] = xmlToArray($match[2][$key]);
        } else {
            @$array[$val] = $match[2][$key];
        }
        
        $loop++;
    }
    
    return $array;
}

//آماده سازی فید جهت ایجاد خروجی
function displayFeed($url, $num){
    $template = '<div class="rss-item"> &raquo; <a href="#link#" target="_blank">#title#</a></div>' . "\n";
    
    if($rss = @file_get_contents($url)){
        $rss = xmlToArray($rss);
        
        if(is_array($rss)){
            $code = "";
            $count = 0;
            
            foreach($rss['rss'][0]['channel'][0]['item'] as $val){
                $tpl = strtolower($template);
                
                foreach($val as $key => $val2){
                    $val2 = html_entity_decode(htmlentities(@strip_tags($val2)));
                    $tpl = str_replace("#" . strtolower($key) . "#", $val2, $tpl);
                }
                
                if($count < $num){
                    $code .= $tpl;
                }
                
                ++$count;
            }
        } else {
            return false;
        }
        
        echo $code;
        return true;
    } else {
        return false;
    }
}

//چاپ خروجی
echo '<div class="rss-block">' . "\n";
displayFeed("$url", $num);
echo '</div>';
?>
توضیح:
- آدرس فید مد نظر را در ابتدای کدها در متغیر url جایگزین می کنیم (حتما باید آدرس کامل را به صورت http://www یا //:http درج کنیم)، این آدرس به طور معمول به فرمت xml ختم می شود (اگر آدرس به فرمت xml ختم نشد خروجی آن باید به زبان XML باشد).
- دقت کنیم که محتوای فید از نظر استاندار کدنویسی معتبر باشد، برای این منظور می توانیم از سرویس اعتبارسنجی W3C در آدرس زیر استفاده کنیم:
https://validator.w3.org/feed/
- در تابع displayFeed ابتدا محتویات فید مقصد را با روش file_get_contents دریافت و جهت تجزیه و استخراج اطلاعات تگ ها تابع xmlToArray را با مقادیر دریافت شده به عنوان آرگیومنت فراخوانی می کنیم.
- تابع xmlToArray مقادیر دریافتی از فید را با استفاده از روش preg_match_all و preg_match تجزیه کرده و نتیجه را به صورت آریه قابل استفاده در تابع displayFeed برمی گرداند.
- در ادامه، تابع displayFeed به صورت داینامیک الگوی هشتگ های موجود در متغیر template را با آرایه دریافتی مقایسه کرده و مقادیر متناظر آنها را جایگزین می کند تا سرانجام نتیجه برنامه در هر دور حلقه foreach ایجاد و در نهایت به مرورگر ارسال شود.
- با توجه به استفاده از تابع strtolower در کدنویسی برنامه، اسکریپت به بزرگ یا کوچک بودن حروف حساس نیست.
- خروجی کد بالا در بلاکی با آی دی rss-block تولید می شود و هر آیتم، کلاسی با نام rss-item دارد، از این کلاس ها می توانیم برای ایجاد تنظیمات و استایل CSS دلخواه استفاده کنیم (نمونه پیش فرض در انتهای همین صفحه به صورت پیش نمایش آنلاین درج شده است).

تنظیمات و استایل CSS قابل اعمال بر روی فید خوان PHP


کد بالا در حالت پیش فرض تنها لینک مطالب را به صورت HTML خروجی می دهد، اما همانطور که پیش تر گفتیم در صورت نیاز می توانیم محتوای هر کدام از تگ های RSS را در خروجی داشته باشیم، به طور مثال متن مربوط به توضیحات مطالب را با افزودن تگ description به صورت #description# به متغیر template علاوه بر لینک ها در خروجی نمایش دهیم، در نمونه کد زیر این کار را برای مقادیر تاریخ و توضیحات آیتم های فید انجام داده ایم:
$template = '<div class="rss-item"> &raquo; <a href="#link#" target="_blank">#title#</a><br>#description#<br>#pubDate#</div>' . "\n";
برای اعمال استایل دلخواه نیز می توانیم در فایل CSS مقادیر مورد نظر خود را به کلاس های rss-block و rss-item نسبت دهیم، مثال:
<style>
.rss-block{
    border:1px #666 solid;
    padding:4px;
    line-height:18px;
}
.rss-block a{
    text-decoration:none;
    color:#06C;
}
.rss-block a:hover{
    color:#09F;
}
.rss-item{
    height:auto;
}
</style>

پیش نمایش اسکریپت فید خوان آر اس اس


نمونه کامل کد فید خوان آر اس اس با برنامه نویسی PHP و پیش نمایش آنلاین آن در لینک زیر قابل تست و بررسی است.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | فید خوان آر اس اس با PHP</title>
<!-- Webgoo.ir -->
<style>
body {
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 12px;
    direction: rtl;
}
.rss-block {
    border:1px #666 solid;
    padding:4px;
    line-height:18px;
}
.rss-block a {
    text-decoration:none;
    color:#06C;
}
.rss-block a:hover {
    color:#09F;
}
.rss-item {
    height:auto;
}
</style>
</head>
<body>
<?php
//تنظیمات
$url = 'https://webgoo.ir/rss.xml';//آدرس فید
$num = '5';//تعداد آیتم

//تبدیل اطلاعات فید به آرایه
function xmlToArray($text){
    $regexp = '/<(\w+)[^>]*>(.*?)<\/\\1>/s';
    preg_match_all($regexp, $text, $match);
    $loop = 0;
    
    foreach($match[1] as $key=>$val){
        if(preg_match($regexp, $match[2][$key])){
            @$array[$val][$loop] = xmlToArray($match[2][$key]);
        } else {
            @$array[$val] = $match[2][$key];
        }
        
        $loop++;
    }
    
    return $array;
}

//آماده سازی فید جهت ایجاد خروجی
function displayFeed($url, $num){
    $template = '<div class="rss-item"> &raquo; <a href="#link#" target="_blank">#title#</a><br>#description#<br>#pubDate#</div>' . "\n";
    
    if($rss = @file_get_contents($url)){
        $rss = xmlToArray($rss);
        
        if(is_array($rss)){
            $code = "";
            $count = 0;
            
            foreach($rss['rss'][0]['channel'][0]['item'] as $val){
                $tpl = strtolower($template);
                
                foreach($val as $key => $val2){
                    $val2 = html_entity_decode(htmlentities(@strip_tags($val2)));
                    $tpl = str_replace("#" . strtolower($key) . "#", $val2, $tpl);
                }
                
                if($count < $num){
                    $code .= $tpl;
                }
                
                ++$count;
            }
        } else {
            return false;
        }
        
        echo $code;
        return true;
    } else {
        return false;
    }
}

//چاپ خروجی
echo '<div class="rss-block">' . "\n";
displayFeed("$url", $num);
echo '</div>';
?>
</body>
</html>
پیش نمایش آنلاین
sectionدسته بندی: آموزش کاربردی » PHP
related مطالب بیشتر:
» دریافت و نمایش پیج رنک گوگل با PHP
» نمایش قسمتی از متن و پاراگراف با PHP
» تبدیل تاریخ میلادی، شمسی با مبدل JDF در PHP
» نحوه نمایش متن و تصاویر اتفاقی در PHP و MySQL
» ارسال ایمیل با PHP و کلاس phpmailer
commentنظرات (۸۸ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: shahtut
۱۹:۵۲ ۱۳۹۱/۰۹/۰۷
سلام
ممنون از زحمات شما
موقع استفاده در لاین 50 اخطار می دهد.
در صورت اصلاح لطفا خبرم کنید
یا علی ع
پاسخ: 
مشکل به خاطر حذف ناخواسته بک اسلش ها از مقادیر داخل دابل کوتیشن (نقل قول) ها بود که حل شد. ممنون که اطلاع دادید.
نویسنده: shahtut
۰۸:۲۸ ۱۳۹۱/۰۹/۰۹
سلام دوباره
ممنون از جوابگویی سریعتون
مشکل کد با فیدهای سایت های دیگر حل شد ولی با سایت من نه.
من حتی فیدهای مشابه سایتم رو امتحان کردم و مشکلی نداشت اما با سایت من مشکل داره
با فیدبرنر سایتم هم نشد
حتی یه فید ساختم ولی بازم نشد
اخطار لاین 56 رو میده
ممنون میشم برای من امتحانش کنی و بعد باخبرم کنی
فیدهای من:
http://feeds.feedburner.com/shahtut
http://www.shahtut.com/?page_id=2813
http://www.shahtut.com/?feed=rss2
پاسخ: 
کد مجددا اصلاح و مشکل فیدها حل شد، لطفا بررسی کنید.
نویسنده: عبدالله
۰۵:۳۲ ۱۳۹۱/۱۰/۱۱
سلام .
آقا عالی بود.
فقط یه سوال.
چطوری میشه یک خبرخوان ایجاد کنیم که به وسیله جاوا خونده بشه، مثل ابزارهای خبرخوان که سایت های مختلف در اختیار کاربران میزارن.
چون توی سایتم می خوام از یک خبرخوان استفاده کنم . اما چون اون کد جاوا از یک سایت دیگه خونده میشه ، واسه این لود شدنش طول میکشه و قسمتی از قالب سایت که مربوط به خبرخوان هستش ، دیر لود میشه و مشکل ایجاد میکنه .
اگر بتونید راهنمایی کنید یا اینکه کد مخصوص این خبرخوان رو در اختیارم بزارین واقعا ممنون میشم .
پیشاپیش از زحمات شما متشکرم
پاسخ: 
ایجاد خبرخوان با جاوا اسکریپت (به تنهایی) کار ساده ای نیست و باید از امکانات جانبی مانند API گوگل استفاده کنید که مشکلات خاص خود را دارد، ابزارهایی که گفتید هم (صرفا) بر مبنای جاوا اسکریپت نیستند بلکه تنها کدی که برای نمایش در اختیار شما قرار می گیرد جاوا اسکریپت است و از طریق آن، خروجی یک فایل سرور (PHP، ASP و...) نمایش داده می شود، یعنی اصل کد به زبان PHP یا ASP است و تنها با جاوا اسکریپت بارگذاری می شود.
نویسنده: سعید
۱۳:۰۸ ۱۳۹۲/۰۲/۱۱
سلام
ممنون از مطلب خوبتون
من این آموزش رو انجام دادم و جواب هم گرفتم ازش، ولی با فیدهای سایت های وردپرسی مشکل دارم!
آر اس اس های بقیه سایت ها رو می خونه این کد، ولی آر اس اس سایت های وردپرسی رو نمی‌خونه!
میشه لطفاً در این زمینه راهنمایی بفرمایید؟
ممنون
پاسخ: 
اگر فید RSS به صورت استاندارد باشد، مشکلی پیش نمی آید، در مورد فید سایت های وردپرس، بررسی ما نشان داد که در بین تگ content:encoded، خروجی مطالب به صورت ایمن نشده و مستقیم چاپ می شود که به این ترتیب تگ های HTML نیز به صورت مستقیم به خروجی ارسال می شوند، در حالی که در فیدها، تنها تگ های مجاز XML باید استفاده شوند و سایر موارد با توابعی مانند htmlentities به معادل HTML تبدیل شوند، به فرض خروجی زیر در یک فایل XML صحیح نیست:
<content:encoded>
<p>
<em>
محتوای مطالب
</em>
</p>
</content:encoded>
نمونه صحیح:
<content:encoded>
&lt;p&gt;
&lt;em&gt;
محتوای مطالب
&lt;/em&gt;
&lt;/p&gt;
</content:encoded>

این مشکل را تنها از طریق ویرایش قسمت ایجاد فید در وردپرس می توان بر طرف کرد.
نویسنده: سعید
۲۳:۱۱ ۱۳۹۲/۰۲/۱۱
سلام مجدد
ممنون از پاسختون.
پس یعنی الان هیچ راهی برای خوندن فیدهای وردپرسی نیست!؟ چون ابزارهای آماده سایت‌هایی مثل پارس تولز می‌تونند این نوع فیدها رو هم بدون مشکل بخونند.
اگر راه حلی برای این مشکل می‌تونه وجود داشته باشه، لطف می کنید راهنمایی بفرمایید.
بازم ممنون
پاسخ: 
راه حل وجود دارد، اما همیشه بهترین حالت این است که فیدهای استاندارد داشته باشیم، به هر صورت کد زیر با هر نوع فیدی سازگار است.
<?php
//فراخوانی کلاس
$doc = new DOMDocument();
//آدرس فید
$doc->load('http://webgoo.ir/rss.xml');
//تعداد لینک
$num = 5;

//ایجاد آرایه
$xml = array();
foreach($doc->getElementsByTagName('item') as $node){
$array = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'description' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
);
array_push($xml, $array);
}

//ایجاد خروجی
if(is_array($xml)){
//تعداد کل آیتم ها
$all = count($xml);
if($all < $num){
$num = $all;
}
$rss = NULL;
for($i = 0; $i < $num; $i++){
$rss .= '<div class="rss-item">
&raquo; <a href="'.$xml[$i]['link'].'" target="_blank">'.$xml[$i]['title'].'</a>
</div>';
}
}

//چاپ خروجی
echo('<div class="rss-block">');
echo $rss;
echo('</div>');
?>
نویسنده: hafez
۱۲:۲۶ ۱۳۹۲/۰۲/۲۰
سلام میشه لینک فیدها رو تو آیفریم باز کرد؟ اگه میشه راهنمایی کنید. تشکر.
پاسخ: 
بله، می توانید لینک ها را به صورت غیر مستقیم باز کنید، به فرض به عنوان پارامتر، از طریق متد GET به یک فایل PHP بفرستید و در آن فایل، آن را با توابعی مانند file_get_contents فراخوانی یا به عنوان آدرس iframe در قسمت src جایگزین کنید.
نویسنده: محمد
۰۹:۳۱ ۱۳۹۲/۰۲/۲۷
سلام چرا وقتی دستور ساعت رو قرار می دهم همون نشون می ده یعنی به جای ساعت دستورش نشون میده؟
پاسخ: 
سورس کد فید مورد نظر را بررسی کنید، ممکن است تگ pubDate در آن نباشد یا عنوان دیگری داشته باشد.
نویسنده: رستمي
۱۰:۵۱ ۱۳۹۲/۰۳/۳۰
سلام
مطالبتون بسيار عالي هستن آرزوي موفقيت شما رو دارم
فقط تو سايتاي خارجي سراغ داشتم كه مطالب مفيد و با ارزش رو رايگان در اختيار فرد بزارن
نویسنده: علی
۲۰:۰۳ ۱۳۹۲/۰۴/۰۲
عالی بود
خیلی ممنون
نویسنده: hamed
۱۵:۰۱ ۱۳۹۲/۰۴/۰۴
سلام آیا میشه اطلاعات رو از بانک اطلاعاتی خواند؟
پاسخ: 
بله، منتها باید تغییراتی در کد دهید، به طور مثال بخش ورودی را که در کد فعلی بر مبنای آدرس URL و تابع file_get_contents است، به صورت مستقیم مقدار دهی کنید (مقادیر را از دیتابیس انتخاب و به متغیر rss بدهید).
نویسنده: محمدحسن
۱۵:۲۹ ۱۳۹۲/۰۴/۰۹
باز سلام
ببخشید از کدتون استفاده کردم برای ار اس اس سایتی
توی سایته درست میاد
ولی وقتی با مشتری با نرم افزار rss خوانش میخواد اطلاعات رو بکشه بیرون ارور میده
ttp://hobbollah.com/include/rsshewarat.xml
میگن این ارور رو میده
We were unable to find any publishable items in this feed. The feed may be empty, or the items in the feed may be missing critical elements (such as links or pubdates) which prevent us from publishing.
به نظر شما کجای کار مشکل داره؟
پاسخ: 
چند مشکل ممکن است باعث بروز این خطا شود:
- فید شما معتبر نیست و خطاهایی در آن وجود دارد، برای بررسی بیشتر به آدرس زیر مراجعه کنید.
http://validator.w3.org
- نکته دوم اینکه حجم فید شما خیلی زیاد است، در فیدها معمولا تنها چکیده ای از مطالب درج می شود.
- مورد سوم اینکه به نظر مشکلی در بارگذاری فید مورد نظر وجود دارد، شاید به همین دلیل خطای Time Out رخ دهد و چیزی به عنوان نتیجه دریافت نشود، باید ببینید علت بارگذاری دیرهنگام فید چیست.
نویسنده: morteza
۰۱:۴۹ ۱۳۹۲/۰۴/۲۱
سلام
من آموزش های مقدماتی شما رو خوندم. توی این آموزش چند تا سوال دارم اول اینها چی هستند و کاربردشون چیه؟
/<(\w+)[^>]*>(.*?)<\/\\1>/s
این متغیر هایی که نوشتید آیا خودتون اسم براش گذاشتید یا این بصورت از پیش تعریف شده هستند؟
 $reg_exp
و ..
پاسخ: 
در مورد سوال اول: اینها عبارات باقاعده یا Regular Expressions هستند که در برنامه نویسی کاربردهای خاصی دارند (به طور مثال اسخراج مقادیر از درون تگ های خاص و...) به طور مثال خط مورد اشاره الگوی یک تگ جفتی در XML است.
در مورد سوال دوم: متغیر های از پیش تعریف شده هر زبانی محدود به موارد مشخصی هستند، سایر موارد دلخواه و بر اساس سلیقه برنامه نویس است، متغیر مورد نظر نیز فرضی و سلیقه ای است.
نویسنده: 20patogh
۱۳:۵۴ ۱۳۹۲/۰۵/۱۲
سلام من می خوام یه سایت خبر خوان بزم تنها آموزش خوبی که دیدم در سایت شما بود واقعا عالیه
در ضمن چند تا سوال هم داشتم
1 - چه جوری میشه آدرس فید ها رو از دیتابیس بخونه بعد در مورد آی فریم بیشتر توضیح میدید که چجور لینک رو توی یه صفحه جدا باز کنه
پاسخ: 
در مورد نحوه فراخوانی فید از دیتابیس، باید اطلاعات MySQL را از دیتابیس مربوطه SELECT کنید و به عنوان مقادیر در متغیر url جایگزین نمائید (در این صورت نباید از تابع file_get_contents استفاده کنید).
در مورد سوال دوم، همان طور که در سوالات قبلی اشاره کردیم:
می توانید لینک ها را به صورت غیر مستقیم باز کنید، به فرض به عنوان پارامتر، از طریق متد GET به یک فایل PHP بفرستید و در آن فایل، آن را با توابعی مانند file_get_contents فراخوانی یا به عنوان آدرس iframe در قسمت src جایگزین کنید.
مثال:
ساخت لینک به صورت:
yoursite.com/view.php?url=http://webgoo.ir
سپس دریافت مقادیر لینک با تابع یا جایگزینی در قسمت src:
<?php
@$url = $_GET['url'];
echo file_get_contents($url);
?>
<iframe src="<?php echo $url ?>"></iframe>
اگر کدهای بالا را اجرا کنید، صفحه اول «وبگو» نمایش داده می شود، لذا کافی است برای هر فید که شامل آدرس یک صفحه در وب است این کار را انجام دهید.
نکته: برخی سایت ها امکان iframe را مسدود می کنند.
نویسنده: 20patogh
۲۲:۲۱ ۱۳۹۲/۰۵/۱۲
سلام من درست متوجه نمیشم نگاه کنید این کد من هست
$doc->load('http://localhost/wordpress/?feed=rss2');
که مطالب سایت رو نشون میده ولی چجور بفرستمش تو آی فریم ببخشید متوجه مطالب بالا نشدم
مثلا
yoursite.com/view.php?url=http://webgoo.ir
خوب من باید آدرس فید رو تو این قسمت بزارم این رو که نمیشه گذاشت
بعد مثلا اگه توی بانک اطلاعاتی 10 تا آدرس فید داشته باشم چجور تک تک می خونه بعد بفهمه از چه سایتی هست دانلود هست آموزش هست
پاسخ: 
وقتی فیدها را می خوانید، هر فید شامل چندین لینک است، خروجی فیدخوان شما نیز این لینک ها خواهند بود، حال برای نمایش محتوای لینک ها می توانید آنها را به یک کد PHP به عنوان پارامتر ارسال کرده و توسط آن کدها، محتوا را با واسطه (در iframe یا با file_get_contents) نشان دهید، در مورد فراخوانی چند فید و دسته بندی دیتابیس، این بحث به آموزش های مقدماتی نیاز دارد که باید پیش تر آنها را گذرانده باشید، مباحثی مانند آرایه ها، حلقه ها، کار با دستورات MySQL و...، قاعدتا مجال طرح همه آنها در این قسمت نیست.
نویسنده: ehsan
۱۳:۵۱ ۱۳۹۲/۰۷/۲۵
سلام
ممنون از مبحث خوبی که گذاشتید سوالم از شما اینه که اگه بخوایم این rss به صورت متحرک باشه چه باید کرد
پاسخ: 
متحرک کردن RSS به نحوه ایجاد خروجی بر می گردد، شما می توانید هر نوع خروجی به صورت HTML در متغیر template داشته باشید، به فرض از تگ marquee در کنار تگ a استفاده کنید.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- موارد غیرمرتبط با مباحث آموزش ها را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ مختصر داده خواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- از درج عناوین تبلیغاتی در فیلدها خودداری کنید، در صورتی که یادداشت تبلیغاتی تشخیص داده شود حذف خواهد شد.
- تمام یادداشت ها بررسی و زمانی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد خودداری کنید.





1 × 6
 refresh

آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form بنیامین
در:
درود. وقت بخیر. من یک سوالی از خدمتتون داشتم؟ من می خوام وقتی کاربر بنویسه بدون اینکه URL تغییر کنه. و اینکه چطوری بعد...
۱۳۹۹/۱۱/۰۷

form مهدی
در:
خیلی ممنون آموزش خیلی خوبی بود
۱۳۹۹/۱۱/۰۷

form علی
در:
سلام تشکر میکنم از شما و سایت فوق العاده عالی تون مشکلم حل شد تشکر میکنم موفق باشید
۱۳۹۹/۱۱/۰۵

form rofa
در:
سلام خسته نباشید خیلی ممنونم از مطالب خوبتون.. ببخشید علامتی که در سمت راست همین سایت هستش چجوری تغییر جهت میده با اسکرول کردن...
۱۳۹۹/۱۱/۰۵

form علی
در:
با سلام تشکر از سایت خوبتون و اموزشای خوبی که قرار میدین یک سوال داشتم من میخوام از یک فایل رشته ای همانند :...
۱۳۹۹/۱۱/۰۵

form علی
در:
با سلام سایت هایی من میخوام اطلاعاتی از سایتی بگیرم اما این سایت پس از چند ثانیه این اطلاعات رو به من نشون میده و...
۱۳۹۹/۱۱/۰۴

form شیدا
در:
سلام برای اینکه بتونم جدول ضرب 1 در 5 رو بنویسم چه کدهایی باید بنویسم؟
۱۳۹۹/۱۱/۰۳

form امیرحسین
در:
چرا استاد خیلی فرق داره الان کد زیر را شما در نظر بگیرید بین 0 تا 1 ثانیه طول میکشه اجرا شدنش خب شما...
۱۳۹۹/۱۱/۰۲

form امیرحسین
در:
سلام استاد حالتون چطوره، من یه سوال داشتم: تو پروژه های بزرگ که یک ارایه معمولا 20 عنصری یا نهایت 100 عنصری داشته باشیم...
۱۳۹۹/۱۱/۰۲

form کوثر رحیمی
در:
سلام ا ز راهنماییتون ممنونم من تازه وبلاگم رو درست کردم ۱۲ سالمه هر کاری می کنم فیلم در اون قرار نمیگیره همش این خطا...
۱۳۹۹/۱۰/۲۹

form متین
در:
سلام و خسته نباشید من بخوام داده ای که از قبل موجوده رو با متد پست به یک فایل ارسال کنم چجور میشه؟ یعنی...
۱۳۹۹/۱۰/۲۷

form روشنا
در:
سلام ما یه وبلاگ گروهی داریم مختص املاک فایل های جدید و حتی قالب جدید اصلا اعمال نمیشه . حتی راهنمایی که کرده...
۱۳۹۹/۱۰/۲۷

form علی
در:
من در یک سایت سازی سایت ساختم یه بخش داره به نام اسکریپت دلخواه می خوام یه اسکریپتی بذارم که مثلا یه موسیقی وقتی کاربر...
۱۳۹۹/۱۰/۲۷

form امیرحسین
در:
بله استاد خیلی ممنون، نمیدونستم خودش Optimize رو انجام میده در کل من بعد از ایندکس گذاری ها همیشه سعی کردم جوری که با...
۱۳۹۹/۱۰/۲۶

form امیرحسین
در:
ُسلام وقت بخیر این کووری هم چون اول قسمت WHERE انجام میشه بعد قسمت ON پس این کووری هم با حالت کووری قبلی برابره
۱۳۹۹/۱۰/۲۶
form امیرحسین
در:
سلام استاد وقت بخیر ممنون از پاسخ گویی های قبلی یه سوال دیگه داشتم: این هم هیچ مشکلی نداره و کار میکنه، ایا...
۱۳۹۹/۱۰/۲۵
form محمد بیدل بازه
در:
سلام خسته نباشید ببخشید من توی یک قسمت سایتم تصویری دارم و میخوام سمت راست اون تصویر متن بنویسم ولی نمیشه تا متن رو...
۱۳۹۹/۱۰/۲۵
form سلام
در:
و اینکه یه تگ خوب برای فونت معرفی کنید و یه تگ دیگه که متن رو (تیتر مطلب (تست)) در ادامش بنویسه نه اینکه...
۱۳۹۹/۱۰/۲۴
form سلام
در:
سلام وبسایتم را نگاه کنید از چه تگی استفاده کنم تا فاصله بین تیتر مطلب جدید را کاهش دهم؟ (از خطی به خط...
۱۳۹۹/۱۰/۲۴
form وطن
در:
سلام. خسته نباشید. خیلی گشتم درباره یک خطا یا ایراد فنی که چند روز هست در سایت نوشته شده با پی اچ پی (اسکریپت اولوشن)...
۱۳۹۹/۱۰/۲۴
form حورارمی
در:
سلام. من هنوز نمیدونم تو تنظیمات باید کجا رو بگردم تا قالب وبلاگم رو با عکس مورد علاقه ام تغییر بدم. یا نمیتونم...
۱۳۹۹/۱۰/۲۳
form راشد
در:
این روش خیلی طولانیه در فروشگاه من یک برنامه گرفتم که یه عکس توش اپلود کن بهت یک لینک میده در ظرف چند ثانیه و...
۱۳۹۹/۱۰/۲۱
form باسلام
در:
باسلام خدمت شما عزیز زحمت کش، من مطلب را تا آخر مطالعه کردم. من وبلاگم بازدیدای زیادی داره چون تمام مطالبش رو خودم مینویسم و...
۱۳۹۹/۱۰/۲۱
form محمود
در:
سلام و عرض ادب من در سایتم یک قسمت تب ایجاد کردم، متن ها را که در تب می نویسم پاراگراف بندی نمی شوند....
۱۳۹۹/۱۰/۲۱
form علی آقابیگی
در:
سلام خسته نباشید ببخشید من می خواستم کد جدید در وبلاگم بزارم بعد اشتباهی رفتم در قسمت ویرایش کدها و بعد بیشتر کدها را پاک...
۱۳۹۹/۱۰/۲۰
form محمد
در:
سلام. من میخوام با جاوا اسکریپت یک کدی بنویسم که وقتی کاربر روی یک دکمه ‏ای کلیک کرد، یک کد تصادفی برای شمارش ارسال...
۱۳۹۹/۱۰/۲۰
form پوریا
در:
سلام خسته نباشید، ممنونم بابت توضیحات خوبتون، یه مشکلی داشتم میخواستم ببینم امکانش هست راهنمایی کنید؟ فرض کنید یه اینطور متنی داریم: ...
۱۳۹۹/۱۰/۱۹
form seyedsobhanmansouri
در:
سلام خسته نباشید من سایتمو طراحی کردم اما به این مشکلات بر میخورم اول اینکه هدر سایتم نمایش داده نمیشه اصلا و بعد...
۱۳۹۹/۱۰/۱۹
form رضا
در:
سلام. ممنون بابت مطالب مفیدتون. این نوع جستجو به سئو سایت لطمه نمیزنه؟؟؟ چون در این مدل جستجو، مقدار impression میره بالا ولی...
۱۳۹۹/۱۰/۱۹
form mahdi
در:
سلام استاد عزیز ، پس بنظرتون بجای وقت گذاشتن برای یادگیری لاراول و وردپرس ، وقت بزارم که عمیق تر php و ساختار mvc...
۱۳۹۹/۱۰/۱۹
form علی
در:
سلام و ممنون بابت وبسایت عالیتون داخل بعضی سایت ها دیدید مثلا یه متنی شروع به تایپ شدن می کنه و وقتی کامل شد...
۱۳۹۹/۱۰/۱۸
form محمد
در:
سلام خدمت شما دوست عزیز سوالم این بود میخاستم چندتا مثال از این تابع و چند تابع دیگه از خودتون رو برام مثال بزنید...
۱۳۹۹/۱۰/۱۸
form محمود رنجبر
در:
سلام برادر مشکل من تو همین سایتی هست که فرستادم وقتی گزینه خانه رو کلیک میکنم و بعد دکمه بک گوشی رو میزنم بالای صفحه...
۱۳۹۹/۱۰/۱۷
form mahdi
در:
سلام استاد عزیز ، بعد از آموزس php با لاراول کار کنیم بهتره ؟
۱۳۹۹/۱۰/۱۶
form رضا
در:
آدرس رو براتون گذاشتم دامنه قبلا روی یه وبلاگ میهن بلاگ بود چند ماه میشه که از میهن بلاگ خداحافظی کردم ولی هنوز که هنوزه...
۱۳۹۹/۱۰/۱۴
form نیلو
در:
سلام... ببخشید بعد طراحی قالب قالب شیشه ایم هست یا نه؟؟؟
۱۳۹۹/۱۰/۱۳
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا 24 ساعت زمان ببرد.