2010-03-05 44 views
5

Tôi đang cố gắng viết một kênh RSS rất đơn giản sẽ hiển thị dải truyện tranh của ngày hiện tại từ sinfest.net, nhưng tôi không thể ép buộc nó hiển thị bất cứ điều gì ngoài tiêu đề được liên kết. Liên kết với một trong những phiên bản mã:Làm thế nào để hiển thị hình ảnh trong RSS?

<?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>'; 
?> 

Mã RSS-only (Tôi đã không loại bỏ các biến 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> 

Bất kỳ ý tưởng những gì tôi làm sai và một số mảnh lời khuyên có thể? Cảm ơn là tạm ứng.

+1

Vui lòng gửi kèm mã trong câu hỏi. Có để tải về một tập tin zip và giải nén nó là quá nhiều nỗ lực và rủi ro mất một phần quan trọng của nội dung cho tương lai. … trang web tải xuống dường như không hoạt động. "Liên kết" rõ ràng không phải là liên kết. – Quentin

+0

Xin lỗi, tôi quên mất khả năng đó. – brovar

+0

Thử hiển thị cho chúng tôi RSS, không phải PHP. Đó là RSS bạn đang gặp vấn đề phải không? – Quentin

Trả lời

12

Tốt nhất là để CDATA rằng phần hình ảnh (hoặc bạn có thể "htmlentities()" nó, nhưng điều này là tốt hơn!)

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

Cảm ơn bạn, nó đã giúp - nhưng đáng ngạc nhiên là "htmlentities", không phải là "CDATA". – brovar

+0

Vui vì nó đã giúp! – Fenton

Các vấn đề liên quan