Я пытаюсь создать автоматический канал для моей CMS с помощью PDO.
Вот мой код Это работает, но показано только несколько сообщений. Что не так с моим кодом?
<?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 & honda cilegon. beli mobil di serang terbukti lebih murah. Cek info harga & 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 сообщение в правильном формате).
Когда я вернулся в свои коды pdo, никаких проблем. Но это из-за амперсанда в том названии, которое недействительным в соответствии с браузеры Mozilla а также Google FeedBurner.
Решение:
Все амперсанды должны быть изменены на &
Тогда я использую это, чтобы изменить все &
в <title>
,<description>
с помощью этого следует:
$title = str_replace('&', '&', $r['title']);
$description = str_replace('&', '&', $r['description']);
и это работает как я хочу
Замечания:
Но этот вопрос не является дубликатом так как вопрос отличается от ссылки: р
Вы пробовали следующее? :
$sqlFeed = "SELECT * FROM honda_post ORDER BY id DESC LIMIT 21";