PhP不以适当的格式导出XML

时间:2013-05-26 00:27:11

标签: php xml rss mailchimp

不确定这是否会导致我的问题,但我正在尝试使用Mailchimp设置rss广告系列。我有几个设置工作正常。

这次我正在尝试创建另一个由rss驱动的广告系列,但我自己创建了这个Feed来从mysql中获取数据。唯一的问题是XML作为纯文本导出,而不是作为xml documnent正确格式化。

我的PHP代码

<?php
header("Content-Type: application/rss+xml; charset=ISO-8859-1");

DEFINE ('DB_USER', '********');   
DEFINE ('DB_PASSWORD', '*********');   
DEFINE ('DB_HOST', '*******************************');   
DEFINE ('DB_NAME', '******************************'); 

$rssfeed = '<?xml version="1.0" encoding="UTF-8"?>';
$rssfeed .= '<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">';
$rssfeed .= '<channel>';
$rssfeed .= '<title>Free Scrabble Dictionary - Word Of The Day</title>';
$rssfeed .= '<link>http://www.freescrabbledictionary.com</link>';
$rssfeed .= '<description>This is an example RSS feed</description>';
$rssfeed .= '<language>en-us</language>';
$rssfeed .= '<copyright>Copyright (C) '.date(Y).' freescrabbledictionary.com</copyright>';

$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 * FROM wordday LEFT JOIN wn_synset ON wordday.synset_id = wn_synset.synset_id LEFT JOIN wn_gloss ON wordday.synset_id = wn_gloss.synset_id ORDER BY wordoftheday.ID DESC LIMIT 1";
$result = mysql_query($query) or die ("Could not execute query");

while($row = mysql_fetch_array($result)) {
    extract($row);

    if ($ss_type == 'n') {
        $ss_type = 'Noun';
    } elseif ($ss_type == 'v') {
        $ss_type == 'Verb';
    }

    $rssfeed .= '<item>';
    $rssfeed .= '<title>'.$word.' - ['.$ss_type.']</title>';
    $rssfeed .= '<description>'.$gloss.'</description>';
    $rssfeed .= '<link>http://www.freescrabbledictionary.com/dictionary/word/test/</link>';
    $rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", time()) . '</pubDate>';
    $rssfeed .= '</item>';
}

$rssfeed .= '</channel>';
$rssfeed .= '</rss>';

echo $rssfeed;
?>

您可以在http://www.freescrabbledictionary.com/includes/wordoftheday.php

看到我的导出

php脚本正在生成我需要的正确数据,但是当我从Mailchimp运行测试电子邮件时,用于提取标题,描述和链接的字段显示为空白。在我的mailchimp广告系列中,我将字段列为

*|RSSFEED:TITLE|*
*|RSSFEED:DESCRIPTION|*
*|RSSFEED:LINK|*

我可以使用.php扩展名来正确格式化XML吗? 那里有任何mailchimp专家吗? :)

谢谢你摇滚!

0 个答案:

没有答案