2010-03-05 87 views
5

我想寫一個非常簡單的RSS頻道,它將顯示來自sinfest.net當天的漫畫,但我不能強迫它顯示除鏈接標題外的任何內容。 鏈接代碼版本之一:如何在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>'; 
?> 

唯一的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 2010-03-05 09:25:28

+0

對不起,我忘了這種可能性。 – brovar 2010-03-05 09:28:51

+0

嘗試向我們展示RSS,而不是PHP。這是您遇到問題的RSS不是嗎? – Quentin 2010-03-05 09:29:35

回答

12

你最好的賭注是CDATA該圖像部分(或者你可以在「ヶ輛()」,但是,這個好!)

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

謝謝,它幫助 - 但令人驚訝的是「htmlentities」,而不是「CDATA」。 – brovar 2010-03-05 09:57:49

+0

很高興幫助! – Fenton 2010-03-05 15:22:01