0

次のphpコードを使用してXMLファイルを作成しています:

    echo '<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title>mytitle</title>
<description>my description</description>
<link>www.mysite.com</link>';

$sql = "SELECT title, description, url, picture, formatted_date 
FROM somewhere" ;

$result = mysql_query($sql);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

if(mysql_num_rows($result)>0)
{
   while($result_array = mysql_fetch_assoc($result))
   {
    //timestamp date to xml format
     $pubdate = date('D, d M Y H:i:s O', strtotime($result_array[formatted_date]));

         echo '  
       <item>  
          <title>'.$result_array[title].'</title>
          <description>'.$result_array[description].'</description> 
          <link>'.$result_array[indit_url].'</link>  
          <pubDate>'.$pubdate.' GMT</pubDate> 

          <enclosure url="'.$result_array[picture].'" length="1121990" type="image"/>
            <image>
              <url>'.$result_array[picture].'</url> 
               <title>image title</title>   
               <link>'.$result_array[picture].'</link>         
                 <width>111</width>                             
               <height>33</height>                             
               <description>An amazing picture</description>   
   </image>      </item>'; 

作成されたファイルはhttp://validator.w3.org/を使用して正しく検証されますが、 http://simplepie.org/のような xml パーサーを使用しようとすると、パーサーは画像をキャプチャできません。正しいタグを使用して画像を xml ファイルに挿入していますか? 画像を挿入する他のタグや方法はありますか?

4

2 に答える 2

0

画像タグの特殊文字をエスケープしてみてください。

使用htmlspecialcharsする$result_array[picture]

また、回答がより正確になるように、RSS フィードのサンプルをここに示していただけますか。

于 2013-03-27T17:53:49.640 に答える
0

データを XML エスケープ構造で囲むことをお勧めします。

<image>
    <url><![CDATA[ imagedatagoeshere ]]></content></url>
</image>

ただ、私はsimplepieに詳しくないので、それがCDATAをちゃんと理解しているかどうかわかりません。

于 2013-03-27T18:00:28.903 に答える