-1

我正在尝试使用 PDO 为我的 CMS 创建自动提要。
这是我的代码。它有效,但只显示很少的帖子。我的代码有什么问题。

<?php
include('dbcon.php');
header("Content-Type: application/rss+xml; charset=ISO-8859-1");
//header("Content-Type: application/rss+xml; charset=utf-8"); 
echo '<?xml version="1.0" encoding="UTF-8" ?>';
echo '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"  xmlns:dc="http://purl.org/dc/elements/1.1/">';
echo '<channel>';
?>
    <title>Authorized Honda Auto Dealer | Serang Cilegon</title>
    <link>https://hondaautoserang.com/</link>
    <atom:link href="https://hondaautoserang.com/feed/" rel="self" type="application/rss+xml"/>
    <description>authorized honda auto dealer: dealer resmi mobil honda serang &amp; honda cilegon. beli mobil di serang terbukti lebih murah. Cek info harga &amp; promo terbaru: 087774040777.</description>
    <language>id-id</language>
    <copyright>Copyright (C) 2017 hondaautoserang.com</copyright>
    <?php
    $sqlFeed = "SELECT * FROM honda_post ORDER BY id DESC";
    $execFeed = $pdo->query($sqlFeed);
    $execFeed->execute();
    $fetchFeed = $execFeed->fetchAll(PDO::FETCH_ASSOC);
    if ($fetchFeed){
        foreach($fetchFeed as $r){
            $id = $r['id'];
            $title = $r['title'];
            $description = $r['description'];
            $publisher = $r['publisher'];
            $article = $r['article'];
            $image = $r['image'];
            $url = $r['url'];
            $date = $r['date'];
            $category = $r['category'];
            //tampilkan
            echo '<item>';
            echo '<title>'.$r['title'].'</title>';
            echo '<description>'.$r['description'].'</description>';
            echo '<category>'.$r['category'].'</category>';
            //echo '<content:encoded><![CDATA['.html_entity_decode($article, ENT_QUOTES, 'utf-8').']]></content:encoded>';
            echo '<link>'.$r['url'].'</link>';
            echo '<pubDate>'.$r['date'].'</pubDate>';
            //echo '<dc:creator>'.$r['publisher'].'</dc:creator>';
            echo '<guid isPermaLink="true">'.$r['url'].'</guid>';
            echo '</item>';
            }
        }
    ?>
<?php

echo '</channel>';
echo '</rss>';
?>

当我更改为 ORDER BY id ASC 时,仅显示 10 个帖子(现在有 21 个格式正确的帖子已发布)。

4

2 回答 2

1

当我重新检查我的 pdo 代码时,没问题。但这是因为根据mozilla 浏览器google feedburner ,该标题中的 & 号无效

解决方案:必须将所有&符号更改为&amp; 然后我使用它来更改所有&中的<title><description>通过使用如下:

$title = str_replace('&', '&amp;', $r['title']);
$description = str_replace('&', '&amp;', $r['description']);

它按我的意愿工作

这是参考:获取实体名称必须立即跟随java中实体引用错误中的“&”,但我的xml文件中没有任何与号

注意:
但是,这个问题不是重复的,因为这个问题与参考不同:p

于 2017-03-24T14:14:15.700 回答
-2

您是否尝试过以下操作?:

$sqlFeed = "SELECT * FROM honda_post ORDER BY id DESC LIMIT 21";

于 2017-03-24T12:58:53.607 回答