جمعه ۲۴ اسفند ۱۴۰۳

Friday, March 14, 2025 GMT +3:30

ساخت فید خوان آر اس اس (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>
پیش نمایش آنلاین
دسته بندی: آموزش کاربردی » PHP
related مطالب بیشتر:
ساخت منوی هوشمند با PHP و CSS
ارسال پارامتر به URL و دریافت مقادیر با PHP
نمایش قسمتی از متن و پاراگراف با PHP
نمایش آمار بازدیدها با PHP بدون استفاده از دیتابیس
نحوه نمایش متن و تصاویر اتفاقی در PHP و MySQL
دیدگاه
more ۹۰ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
۲۱:۱۸ ۱۳۹۳/۰۴/۰۳
آقا این با فیدهای وردپرس مشکل دارن.
برای نمایش فیدهای وردپرس باید چی کار کرد ؟
خیلی بهش نیاز دارم.
آدرس یک فید را جهت بررسی قرار دهید.
۱۳:۴۰ ۱۳۹۳/۰۳/۲۵
سلام و خسته نباشید. ببخشید اگه بخوایم تصویر تامبنیل (تصویر شاخص) که توی فید هست، داخل این خبرخوان نمایش داده بشه، میشه راهنمایی کنید چه کار باید کرد ؟
انجام این کار بستگی به خروجی فیدتان دارد، اگر تصویر در پارامتر description باشد، نباید مشکل خاصی در نمایش آن وجود داشته باشد، لطفا آدرس یک فید مد نظرتان را قرار دهید تا بررسی کنیم.
اردوان
۱۸:۱۲ ۱۳۹۳/۰۳/۲۳
برای وبلاگ هم میشه گذاشتش ؟ من برای وبلاگ توی صفحه اصلیش نتونستم بزارم . کدش بهم ریخته میشه .
خیر! برای اجرای کدهایPHP نیاز به هاست دارید.
۰۰:۵۱ ۱۳۹۳/۰۳/۰۸
با سلام میشه خودتون یک توضیح کوتاه در مورد اینکه چی کار باید کنیم تا مثلا از فیلد پنجم بعد رو بخونه؟ و یا یه جایی رو معرفی کنین که راه نمایی کرده باشه
این گونه تغییرات با درک ساختار کد به راحتی قابل اعمال است، به طور مثال می توانید متغیر num را با یک مقدار بیشتر تنظیم کنید و در عوض قسمت زیر را مطابق نیازتان ویرایش نمائید:
if($count > 4){
if ($count<$num) $code.=$tpl;
}
به این ترتیب پنج آیتم اول به خروجی ارسال نمی شوند.
۲۱:۴۳ ۱۳۹۳/۰۲/۲۰
سلام آقا خسته نباشید واقعا عالی بود موفق باشید
۰۰:۴۶ ۱۳۹۳/۰۲/۰۳
سلام
چطوری میشه عکس فید رو هم از سایت مرجع برداشت و نمایش داد؟
آیا امکانش هست که متن خبر بصورت کامل دریافت و نمایش داده بشه؟
پاسخ ساده ای برای سوالاتتان وجود ندارد، برای تصویر باید تگ img موجود در خروجی را با استفاده از دستور regex استخراج کنید، نمونه تابع:
<?php
function strImgSrc($html){
if(stripos($html, '<img') !== false){
$imgsrc_regex = '#<\s*img [^\>]*src\s*=\s*(["\'])(.*?)\1#im';
preg_match($imgsrc_regex, $html, $matches);
unset($imgsrc_regex);
unset($html);
if(is_array($matches) && !empty($matches)){
return $matches[2];
}
else{
return false;
}
}
else{
return false;
}
}
$html = '<img src="http://yoursite.com/image/logo.png">';
echo strImgSrc($html);
?>
قاعدتا برای توسعه کد باید با PHP آشنا بوده و بتوانید از نمونه تابع استفاده کنید.
متن کامل خیر نیز معمولا در فید RSS درج نمی شود، باید با توابعی مانند file_get_contents و preg_match آشنا باشید و با توجه به خروجی سایت مورد نظر، متن خبر آن را استخراج کنید.
ehsan
۱۴:۰۲ ۱۳۹۳/۰۱/۳۰
سلام
ممنون که جواب دادین
در واقع به خاطر طولانی بودن تیتر بعضی از خبرها باعث می شه خبر دو سطری شه و ناخوانا خطای خاصی نمی ده
بازم ممنون که جواب می دین
15 مورد از آخرین آیتم های این سایت تست شد، مشکلی وجود ندارد! مطمئن هستید که صفحه شما بر اساس یونیکد utf-8 خروجی می دهد؟
در هر صورت حل مشکل باید با تست در سرور سایت شما انجام شود.
ehsan
۱۵:۵۹ ۱۳۹۳/۰۱/۲۵
سلام
ممنون از آموزش خوبتون من چند بار از این دستور برای سایت های مختلف استفاده کردم اما برای rss سایت zoomit جواب نمی ده من آدرس rss سایت که
http://feeds.zoomit.ir/zoomit-it
هست گذاشتم دیگه نمایش نمیده ممنون میشم کمکم کنید
فید مورد نظر تست شد، مشکلی وجود ندارد! لطفا اگر خطایی دریافت می کنید آن را درج کنید.
ابوالفضل
۱۵:۰۶ ۱۳۹۲/۱۲/۱۰
سلام من یک فایل xml دارم که همون نقشه سایتم هستش و بیش از 500 تا ردیف دارد من میخوام 5 مورد آخر را لیست کنم در صورتی که کد شما 5 مورد اول را لیست می کند لطفا راهنمایی کنید
ممنون
reza
۰۲:۰۴ ۱۳۹۲/۱۲/۰۳
با سلام
من میخواستم rss چندین سایت رو به صورت همزمان در داخل div های جداگانه نمایش بدم. اما با توجه به کدهایی که شما آموزش دادید امکان نمایش همه rss ها داخل یک صفحه نیست و پیغام زیر رو میده.
Fatal error: Cannot redeclare xml2array() (previously declared in C:\xampp\htdocs\RSS\khabaronline.php:7) in C:\xampp\htdocs\RSS\varzesh3.php on line 56
ممکنه کدی جدید رو آموزش بدید که امکان این کار باشه؟
ممنون
متاسفانه رسالت سایت ارائه کد یا آموزشی جداگانه برای هر مورد نیست، هدف ارائه بخش اصلی برنامه یا نمونه کد است، توسعه سفارشی آن را باید خودتان و متناسب با نیازتان انجام دهید، کد بالا نیز با تغییراتی به شکل مد نظر شما عمل خواهد کرد که به جهت زمانبر بودن این تغییرات از انجام آن معذوریم!
علی
۱۳:۴۲ ۱۳۹۲/۱۱/۲۸
سلام دوست عزیز
دو تا سوال
1- چطوری چند فید رو با هم وارد کنیم و همه فید ها رو به نمایش در بیاره؟
2- چطور میشه لینک ها رو در یک فایل فرضا links.txt یا php , html ذخیره کنیم و به صورت آرشیو نگهداری کنیم و مثلا اونها رو در صفحه های بعدی به نمایش در بیاریم
ممنون میشم پاسخ بدید
پاسخ کوتاه و ساده ای برای سوالاتتان وجود ندارد!، برای مورد اول باید با نحوه کار و تعریف حلقه ها در PHP آشنا باشید و کد را توسعه دهید برای مورد دوم نیز باید کار با توابع مربوط به فایل را در PHP بیاموزید (مباحث نیاز به طرح در آموزش های جداگانه دارند).
CANDO
۲۳:۱۷ ۱۳۹۲/۱۱/۲۲
سلام
نرم افزاری هست که بتونه به صورت تخصصی فایل های XML برای RSS رو بسازه؟
چطور میتونم متن رو تو RSS راست نویس کنم و از فونت بهتری نسبت به ARIAL استفاده کنم؟
فید RSS معمولا توسط سیستم مدیریت سایت و به یکی از زبان های سمت سرور (مانند PHP) ایجاد می شود، در این مورد استفاده از نرم افزار (دسکتاپی) خیلی معمول و ممکن نیست.
در مورد بخش دوم سوال، در XML نمی توانید خاصیت های ظاهری (مانند چینش متن یا نوع فونت و...) تعریف کنید، تنها می توان به فرض زبان نوشتار را مشخص کرد و در هنگام پردازش فید، بستگی به مرورگر دارد که چگونه فایل را نمایش دهد (برخی مرورگرها زبان های راست به چپ را پشتیبانی می کنند).
mojtaba
۱۵:۳۵ ۱۳۹۲/۱۱/۱۹
سلام و تشکر از شما بابت مطالب مفیدتون
در استفاده از این کد یک سوال داشتم
چطور می تونیم دستوری بدیم که مثلا از فید سوم به بعد رو نمایش بده. برای یک جی کوئری لازم داشتم که مثلا بهش بگیم فیدها رو سه تا سه تا یا مثلا تک تک نمایش بده.
خیلی خیلی ممنون میشم راهنمائیم کنین.
برای گرفتن خروجی سفارشی باید کدنویسی PHP بلد باشید تا بتوانید در حلقه foreach محاسبات مد نظرتان را اعمال و کل کد را بر اساس آن ویرایش کنید، متاسفانه فرصت کافی برای ویرایش اسکریپت به صورتی که مد نظر شما است را نداریم.
محمد رضا
۱۰:۵۳ ۱۳۹۲/۱۱/۱۹
خیلی ممنون بابت کدها.
انجام شد فقط دو مساله پیش اومد:
1- موقع چاپ خروجی به اینصورت چاپ می کند :
Fri, 07 Feb 2014 07:36:39 +0000
یعنی 0000+ به تاریخ اضافه می کند
2- آیا امکانش هست تاریخ شمسی رو به جای میلادی چاپ کنه.
تشکر.
خروجی بستگی به ورودی دارد! باید ببینید متن سورس فید RSS در بخش تاریخ به چه صورت است، برای تبدیل به تاریخ شمسی نیز می توانید از مبدل تاریخ jdf استفاده کنید (آموزش آن چه در سایت و چه در وب وجود دارد).
محمدرضا
۲۰:۰۶ ۱۳۹۲/۱۱/۱۶
سلام ممنون از سایت عالیتون
من از این کد (حالت دوم برای سایت وردپرسی که در نظرات فرمودید) استفاده کردم و همه چیز درست است ولی برای نمایش تاریخ مطلب و یا توضیحات نتونستم کد صحیحی به آن اضافه کنم. اگه ممکنه راهنمایی بفرمایین.
برای این کار می توانید در حلقه for از نمونه های زیر استفاده کنید:
$xml[$i]['description']
$xml[$i]['date']
البته قاعدتا باید با نحوه کار متغیرها در PHP آشنا باشید تا بتوانید پارامترها را به درستی به خروجی ارسال کنید.
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
7 × 2
20 × 20
=
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.

عبدی
سلام سایت من توی لوکال هاست اوکیه ولی بارگذاری میکنم تو هاست نمایش درستی به من نمیده چه کنم لطفا راهنمایی کنید
۱۴۰۳/۱۱/۱۴

بیست شو
سلام وقتتون بخیر. ابتدا لازمه که از مطالب مفید و سایت خوبتون تشکر کنم. در این مقاله کد نهایی پیشنهادی تعداد زیادی ایکون...
۱۴۰۳/۱۱/۱۳

رقیه موسوی
سلام سایت منم بررسی میکنین کلن بهم ریختگی دارم در گوشی و سیستم
۱۴۰۳/۱۱/۰۳

سیدعباسی
با سلام و خسته نباشید این کد رو نگاه کنید شروع می شن رو حذف کنم و فقط متن لینک باقی بمونه ولی...
۱۴۰۳/۱۱/۰۲

امیرحسین
سلام وقت بخیر بنده میخوام با کمک curl دیتابیس پنل رو دانلود کنم و در یک فایل ذخیره کنم با دستور file_get_contents و ارسال...
۱۴۰۳/۱۰/۲۹

عباسی
با سلام و خسته نباشید چطوری می تونم با یک الگو متن داخل کد زیر رو پیدا کنم: با تشکر
۱۴۰۳/۱۰/۲۸
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا ۲۴ ساعت زمان ببرد.