2010-03-05 20 views
5

मैं एक बहुत ही सरल आरएसएस चैनल लिखने की कोशिश कर रहा हूं जो वर्तमान दिन की कॉमिक स्ट्रिप को sinfest.net से प्रदर्शित करेगा, लेकिन मैं इसे लिंक किए गए शीर्षक के अलावा कुछ भी प्रदर्शित करने के लिए मजबूर नहीं कर सकता। कोड संस्करणों में से एक के लिए लिंक:आरएसएस में छवि कैसे प्रदर्शित करें?

<?php 
$page = file_get_contents('http://www.sinfest.net/index.php'); 
$title = ''; 
$description = ''; 
$link = ''; 
$date = date("Y-m-d"); 
if (preg_match('~<img src="(http://sinfest\\.net/comikaze/comics/.*\\.gif)" alt="(.*)" border="0" />~isU', $page, $match)) { 
     $title = $match[2]; 
     $description = "<img src='{$match[1]}'/>"; 
} 
if (preg_match('~<a href="http://sinfest\\.net/archive_page\\.php\\?comicID=([0-9]*)"><img src="images/prev_a.gif"~isU', $page, $match)) { 
     $link = 'http://sinfest.net/archive_page.php?comicID=' . ($match[1]+1); 
} 
$ok = $title && $description && $link; 
$image = "http://www.sinfest.net/comikaze/comics/" . $date . ".gif"; 
echo '<?xml version="1.0" encoding="ISO-8859-1" ?>'; 
echo '<rss version="2.0"> 
     <channel> 
       <title>Latest Sinfest</title> 
       <link>http://www.sinfest.net/</link> 
       <description>Latest Sinfest</description> 
       <image> 
         <url>' . $image . '</url> 
         <title>' . htmlspecialchars($title) . '</title> 
         <link>' . htmlspecialchars($link) . '</link> 
       </image>'; 
if ($ok): 
echo '    <item> 
         <title>' . htmlspecialchars($title) . '</title> 
         <link>' . htmlspecialchars($link) . '</link> 
         <description><img src="' . $image . '" /></description> 
         <enclosure url="' . $image . '" type="image/jpeg" /> 
       </item>'; 
elseif (!isset($_GET['noerror'])): 
echo '    <item> 
         <title>Error parsing news.' . date('Y-m-d H:i:s') . '</title> 
         <link>about:blank</link> 
         <description>Error parsing news.</description> 
       </item>'; 
endif; 
echo '  </channel> 
</rss>'; 
?> 

आरएसएस-केवल कोड (मैं PHP चर को नहीं निकाला):

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<rss version="2.0"> 
    <channel> 
     <title>Latest Sinfest</title> 
     <link>http://www.sinfest.net/</link> 
     <description>Latest Sinfest</description> 
     <image> 
      <url>' . $image . '</url> 
      <title>' . htmlspecialchars($title) . '</title> 
      <link>' . htmlspecialchars($link) . '</link> 
     </image> 
     <item> 
      <title>' . htmlspecialchars($title) . '</title> 
      <link>' . htmlspecialchars($link) . '</link> 
      <description><img src="' . $image . '" /></description> 
      <enclosure url="' . $image . '" type="image/jpeg" /> 
     </item> 
    </channel> 
</rss> 

किसी भी विचार क्या मैं गलत और के कुछ टुकड़े कर रहा हूँ शायद सलाह? धन्यवाद अग्रिम है।

+1

प्रश्न में कोड शामिल करें। एक ज़िप फ़ाइल डाउनलोड करने और निकालने के लिए यह बहुत अधिक प्रयास है और भविष्य के लिए सामग्री का एक महत्वपूर्ण हिस्सा खोने का जोखिम है। ... डाउनलोड साइट या तो काम नहीं कर रही है। स्पष्ट "लिंक" एक लिंक नहीं है। – Quentin

+0

क्षमा करें, मैं उस संभावना के बारे में भूल गया। – brovar

+0

हमें आरएसएस दिखाएं, PHP नहीं। यह आरएसएस है जिसमें आपको समस्याएं हैं, है ना? – Quentin

उत्तर

12

आपका सबसे अच्छा शर्त है कि छवि अनुभाग CDATA है (वैकल्पिक रूप से आप "htmlentities()" यह है, लेकिन यह बेहतर है सकते हैं!)

<description><![CDATA[<img src="' . $image . '" />]]></description> 
+0

धन्यवाद, इससे मदद मिली - लेकिन आश्चर्यजनक रूप से "htmlentities", "सीडीएटीए" नहीं। – brovar

+0

खुशी हुई यह मदद की! – Fenton

संबंधित मुद्दे