我使用下面的代码在php中创建了一个rss feed。我已经仔细检查了所有变量(即用户名和密码),它们是正确的。 mysql也正确设置。当我尝试使用mamp在我的计算机上本地查看时,我只是得到一个空白页面。任何帮助将不胜感激..这段代码看起来是否正确,除了mamp之外还有其他我应该用来查看这个吗?

<? header('Content-type: text/xml'); ?>
 
<?php
$dbhost = "localhost"; // almost always localhost.
$dbname = "links"; // Database Name
$dbuser = "root"; // Database Username
$dbpass = "password"; // Databse Password
 
$connect = mysql_connect("$dbhost","$dbuser","$dbpass");// Connecting to Database
mysql_select_db($dbname) or die (mysql_error()); // Selecting Database
?> 
 
<rss version="2.0">
<channel>
    <title> </title>
    <description> </description>
    <link></link>

<?
$sql = "SELECT * FROM news limit 5";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
?>
 
<item>
     <title><?=$row['title']; ?></title>
     <author><?=$row['author']; ?></author>
     <link>http://MYSITE.com/news.php?id=<?=$row['id']; ?></link>
</item>
 
<?
}
?>
 
</channel>
</rss>
有帮助吗?

解决方案

有几件事要尝试:

  1. 检查日志。
  2. 在输出之前将呼叫移至header()顶部。
  3. 删除<blockquote>标记。
  4. <?xml version="1.0"?>元素之前的顶部添加处理指令(<rss>)。
  5. content-type标题从text/xml更改为application/xml

其他提示

当我复制此代码并更改MySQL设置以使用实际存在于我的MAMP设置中的数据库时,这对我来说很好,有0项,因为数据库中不存在该表。换句话说,您的MAMP设置似乎有问题,而不是您的代码。您是否确定您的MySQL服务器正在运行并且您有正确的信息可以连接到它?

在MAMP中,您可以通过打开MAMP面板并单击Server <!> gt来访问PHP错误日志; PHP <!> gt;查看日志。根据您的设置,发生错误时可能会出现空白输出。该错误可能有助于引导您朝着正确的方向前进。

我想知道你的所有输出是否都被正确转义了。 mysql表中的数据是否包含需要特殊处理的任何字符?

如果安装了PHP cli,可以尝试使用它进行测试。有时您会看到通过Web浏览器或RSS客户端看不到的内容。

我使用feedcreator http://feedcreator.org/ 获取PHP下的所有RSS代码。我通常发现使用库更容易。我在此处发布了一个示例。

您可能还想考虑禁用short_tags。因为您实际上是在尝试输出XML,所以实际上可能会让您感到困惑。特别是如果您尝试在页面顶部发送类似''的内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top