2016-05-13 5 views
0

私はいくつかの助けていただきありがとうございます。私は自分のウェブサイトのRSSフィードを作成しようとしています。私はそれの半分を稼働させましたが、私は他の半分に助けが必要です。タイトルにリンクを追加できないようで、タグにサムネイルを表示できないようです。誰かが私を助けることができますか?rssフィードにリンクや画像を追加できません<item>タグ

これは、これまでの私のコードです:

<?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

画像とリンクのどちらも表示されない、またはいずれかが表示されない場合、すべてのデータが消え、チャンネル名とチャンネルの説明のみが表示されます。 (具体的なエラーはありません)。それは単に表示されません。 – ika

答えて

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> 

フィードが有効な形式のXMLであり、データが含まれていることを検証します。あなたの質問のコードは、リンクとしてimageデータベースフィールドを挿入します。

htmlspecialchars()を使用してデータベースから値をエスケープするか、DOMまたはXMLWriterのようなXML Apiを使用して出力を生成することをお勧めします。

RSS 2.0 feed itemsimage要素を持たず、channelのみです。

あなたはdescription内部img要素としてそれを含めることができます。

<?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> 
     &lt;img src="http:/example.tld/images/thumbnail.png"> 
     &lt;br> 
     Some content 
     </description> 
    </item> 
    </channel> 
</rss> 

一部のクライアントは、しかし、HTMLを編集し、imgを取り除くことがあります。

フィードと予想されるクライアントによっては、Media-RSSもオプションになる可能性があります。

+0

こんにちは、ありがとうございました。私はあなたが言ったことに取り組もうとしています。どのように(PHPを使用して)タイトルにリンクを追加する方法はありますか、私は試していますが、それは動作していません。これは私のコードです: $ data。= ''。 ' <a href="http://website.com/preem.php?id="'. $row['id'].'"\">'.$row['title'].'</a> '。' '; – ika

+0

'title'要素の内容はテキストではありません。しかし、有効なURLを 'link'要素に入れると、RSSクライアントはそのURLを読むべきです。 – ThW

関連する問題