我很感激一些帮助。我正在尝试为我的网站创建RSS提要。我有一半在工作,但我只是想要帮助另一半。我似乎无法添加标题链接,我似乎无法在标签中显示缩略图。有谁可以帮助我吗?
到目前为止,这是我的代码:
<?php
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'testdb');
$connection = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die('Could not connect to database');
mysql_select_db(DB_NAME)
or die ('Could not select database');
$query = "SELECT teste.id, teste.title, teste.abstract, teste.body, teste.keywords, tesi.image FROM teste INNER JOIN tesi ON teste.title = tesi.title WHERE teste.title = tesi.title";
$result = mysql_query($query) or die ("Could not execute query");
$data = '<?xml version="1.0" encoding="UTF-8" ?>';
$data .= '<rss version="2.0">';
$data .= '<channel>';
$data .= '<title>Bang Premier</title>';
$data .= '<link>http://www.bangpremier.com</link>';
$data .= '<description>Entertainment News</description>';
while($row = mysql_fetch_array($result)) {
extract($row);
$data .= '<item>';
$data .= '<title>'.$row['title'].'</title>';
$data .= '<link>'.$row['image'].'</link>';
$data .= '<description>'.$row['abstract'].'</description>';
$data .= '</item>';
}
$data .= '</channel>';
$data .= '</rss> ';
header('Content-Type: application/xml');
echo $data;
?>
答案 0 :(得分:0)
要调试错误,请查看生成的XML。例如,在浏览器中打开源视图。你应该看到类似的东西:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>Bang Premier</title>
<link>http://www.bangpremier.com</link>
<description>Entertainment News</description>
<item>
<title>Some Title</title>
<link>http://some.domain.tld/link</link>
<description>Some content</description>
</item>
</channel>
</rss>
验证Feed是否格式正确,并包含数据。您问题中的代码会将image
数据库字段作为链接插入。
为此,您应该使用htmlspecialchars()
从数据库中转义值,或者甚至更好地使用像XML或XMLWriter这样的XML Api来生成输出。
RSS 2.0 feed items没有image
元素 - 只有channel
。
您可以将其作为img
内的description
元素包含在其中:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<item>
<title>Some Title</title>
<link>http://some.domain.tld/link</link>
<description>
<img src="http:/example.tld/images/thumbnail.png">
<br>
Some content
</description>
</item>
</channel>
</rss>
有些客户会编辑HTML,但可能会删除img
。
根据您的Feed和预期的客户Media-RSS也可以选择。