نمایش تگهای html در صفحات rss

phpweb

Active Member
من وقتی که صفحات RSS رو بدون تگهای اچ تی ام ال نمایش می دم، مشکلی ندارم. اما وقتی بخوام از تگها یا موجودیتهایی مثل " ' & ; استفاده کنم با مشکل مواجه می شم.

لطفا بگید که چطور می تونم تگها و موجودیتها رو توی صفحات RSS بدون مشکل نمایش بدم؟

ای کد اروری هست که ie7 نمایش می ده.

HTML:
 <?xml version="1.0" encoding="UTF-8" ?><rss  version="2.0"><channel><title>مقالات وب  سايت</title><link>http://localhost/paper.php</link><description>مقالات وب  سايت</description><item><title>مقالات </title><link>http://localhost/paper.php?id=4</link><description>The  connection was reset
 

phpweb

Active Member
اینایی که گفتید به php مربوط میشه؟
فکر نکنم!
به هر حال rss رو باید با استفاده از توابع پی اچ پی نمایش بدیم. برای ایجاد فرمت xml هم باید از پی اچ پی استفاده کنیم.

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

phpweb

Active Member
به اینجا یه نیگاهی بندازید فکنم چیزی باشه که می‌خوایید.
من الان به این صورت از کدها استفاده می کنم اما هنوز هم ارور داده می شه.

لطفا بگید مشکل از کجاست؟
PHP:
 $title="<![CDATA["."$title"."]]>";
    $text="<![CDATA["."$text"."]]>";
    echo '<item>';
    echo "<title>$title</title>";
    echo '<link>http://localhost/paper.php?id='."$id".'</link>';
    echo '<description>'."$text".'</description>';
    echo '</item>';
 
آخرین ویرایش:

greencat

Member
توی تگ <description> هم از متغییر text استفاده کردید ولی داخل تگ CDATA قرار ندادینش.
ادرس صفحه‌ی rss اتون رو هم بدید یه نیگاهی بندازم و برای اینکه راحت تر بفهمید مشکل از چی هستش و حتی از کدوم خط از مرورگر IE برای خطا گیری استفاده کنید.
 

phpweb

Active Member
توی تگ <description> هم از متغییر text استفاده کردید ولی داخل تگ CDATA قرار ندادینش.
ادرس صفحه‌ی rss اتون رو هم بدید یه نیگاهی بندازم و برای اینکه راحت تر بفهمید مشکل از چی هستش و حتی از کدوم خط از مرورگر IE برای خطا گیری استفاده کنید.
متوجه منظورتون نمی شم. من در ابتدا متغیرهایی که حاوی رشته و کارکتر هستن رو توی تگ CDATAقرار دادم و بعد نمایششون دادم.

منظورم کدهای زیر هست. توی کدهای زیر تگ CDATA به هر دو متغیر اضافه شده و نباید مشکلی داشته باشن.

PHP:
$title="<![CDATA["."$title"."]]>";
    $text="<![CDATA["."$text"."]]>";
نظرتون چیه؟

ارور اینترنت اکسپلورر رو هم در ادامه قرار دادم.

کد:
  <![CDATA[<p>The connection was reset<br />
 

greencat

Member
مطمئن هستید که مشکل از کاراکترهای خاص هستش؟
اسکریپتتون رو به صورت معمولی چک کنید ببینید درست هستش یا نه یعنی اتصالات به دیتابیس رو کامنت کنید و به جای متغییرها هم خودتون متن قرار بدید، مثلا در متغییر text عبارت "this is a test " رو ذخیره کنید و ببینید باز هم به مشکل برمی‌خورید یا نه، اگر به مشکل برخوردید که اسکریپتی که استفاده می‌کنید برای این کار مشکل داره و اگر هم مشکل نداشتید مشکلتون باید همونی باشه که خودتون گفتید که اسکریپتتون رو قرار بدید بررسی کنیم با هم.
 

phpweb

Active Member
مطمئن هستید که مشکل از کاراکترهای خاص هستش؟
اسکریپتتون رو به صورت معمولی چک کنید ببینید درست هستش یا نه یعنی اتصالات به دیتابیس رو کامنت کنید و به جای متغییرها هم خودتون متن قرار بدید، مثلا در متغییر text عبارت "this is a test " رو ذخیره کنید و ببینید باز هم به مشکل برمی‌خورید یا نه، اگر به مشکل برخوردید که اسکریپتی که استفاده می‌کنید برای این کار مشکل داره و اگر هم مشکل نداشتید مشکلتون باید همونی باشه که خودتون گفتید که اسکریپتتون رو قرار بدید بررسی کنیم با هم.
مشکل از اسکریپت نیست. این مطلب رو چندین بار تست کردم. وقتی متغیرها رو حذف می کنم، اسکریپت بخوبی کار می کنه. از اونجاییکه متغیرها شامل کاراکترهای خاص هستن با این مشکل روبرو می شم.

اسکریپت رو در ادامه قرار دادم.

PHP:
<?php
echo '<?xml version="1.0" encoding="UTF-8" ?>';
echo '<rss version="2.0">';
echo '<channel>';
echo '<title>اخبار</title>';
echo '<link>http://localhost/paper.php</link>';
echo '<description>اخبار</description>';
$link = mysqli_connect('localhost','root','password','db');
$sql = "select * from text where ( type= 'news' ) order by id desc limit 25";
$res = mysqli_query($cxn, $link);
while ( $row = mysqli_fetch_assoc($res) )
{
    extract($row);
    $news1='<![CDATA['.$news.']]>';
  $title1='<![CDATA['.$title.']]>';
    echo '<item>';
    echo "<title>$title1</title>";
    echo '<link>http://localhost/paper.php?id='."$id".'</link>';
    echo '<description>'."$news1".'</description>';
    echo '</item>';
}
echo '</channel>';
echo '</rss>';
?>
 

greencat

Member
به این شکل بنویسید ببینید مشکلتون حل میشه

کد:
$news1='<![CDATA["'.$news.'"]]>';

یعنی عبارتی که داخل این تگ هستش باید بین " و " باشه.
 

phpweb

Active Member
به این شکل بنویسید ببینید مشکلتون حل میشه

کد:
$news1='<![cdata["'.$news.'"]]>';
یعنی عبارتی که داخل این تگ هستش باید بین " و " باشه.
این روش رو هم تست کردم ولی همون ارور نمایش داده می شد.

می شه اسکریپتی که خودتون استفاده می کنید رو اینجا قرار بدید؟
 

phpweb

Active Member
هنوز این مشکل من حل نشده. کسی از دوستان نمی تونه راهنمایی کنه؟
 

جدیدترین ارسال ها

بالا