0

私はいくつかのコードをつなぎ合わせましたが、おそらくもっとうまく書けるかもしれませんが、それは機能し、機能的なコードにこだわらないことを学びました. いずれにせよ、ここにあるのは、sitemap.xml ファイルと「問題 -- ここに質問を投稿した理由」RSS フィード ファイルを自動的に更新するコードです。

sitemap.xml ファイルへの書き込みは完全に機能します。私は満足している。ファイルの最後に新しいデータを書き込んで</urlset>.

ただし、RSS フィード ファイルでは、トップに表示するには新しいアイテムが必要です。私はそれを行う方法を理解できないようです。したがって、ここに添付されているのは、私のコードの現在のコピーです。基本的に、RSS FEED WRITER というタイトルの 2 番目のセクションは、SITEMAP.XML WRITER というタイトルの最初のセクションの複製です。この行のすぐ下の上部に新しい項目を書き込むために、コードを 2 番目のセクションに変更する必要がある方法: <atom:link href="http://mydomainname.com/index.rss" rel="self" type="application/rss+xml" />index.rss ファイル。

私を助けてくれる人には本当に感謝しています。以下にコードを示します。

//
// SITEMAP.XML WRITER
//
$sitemapurl = "<url>";
$sitemaploc = "<loc>";
$sitemaplocation = "http://mydomainname.com/$url.php";
$sitemaploc1 = "</loc>";
$sitemappri = "<priority>";
$sitemappriority = "1.0";
$sitemappri1 = "</priority>";
$sitemapcha = "<changefreq>";
$sitemapchange = "daily";
$sitemapcha1 = "</changefreq>";
$sitemapurl1 = "</url>";

$sitemapurlset = "\n</urlset>";
$sitemaplength_end_string = strlen($sitemapurlset);

$sitemapfp =
fopen("sitemap.xml","r+") or die("can't open file");
fseek($sitemapfp, -$sitemaplength_end_string, SEEK_END); 
fwrite ($sitemapfp, "\n".$sitemapurl."\n".$sitemaploc."".$sitemaplocation."".$sitemaploc1."\n".$sitemappri."".$sitemappriority."".$sitemappri1."\n".$sitemapcha."".$sitemapchange."".$sitemapcha1."\n".$sitemapurl1."".$sitemapurlset."\n"); //added url set to here
      fclose($sitemapfp); 

//
// RSS FEED WRITER
//

$rssitem = "<item>";
$rsstitle = "<title>$title</title>";
$rsslink = "<link>http://mydomainname.com/$url.php</link>";
$rssguid = "<guid isPermalink=\"true\">http://mydomainname.com/$url.php</guid>";
$rsspubdate = "<pubDate>".date('D, d M Y H:i:s O')."</pubDate>";
$rssdescription = "<description>$metadescription</description>";
$rssitem1 = "</item>";
$rsschannelrssset = "\n</channel>\n</rss>";
$rsslength_end_string = strlen($rsschannelrssset);
$rssfp =
fopen("index.rss","r+") or die("can't open file");
fseek($rssfp, -$rsslength_end_string, SEEK_END);
fwrite ($rssfp, "".$rssitem."\n".$rsstitle."\n".$rsslink."\n".$rssguid."\n".$rsspubdate."\n".$rssdescription."\n".$rssitem1."\n".$rsschannelrssset."\n");
fclose($rssfp);

編集: index.rss ファイルの上部を追加:

<?xml version="1.0" encoding="utf-8"?>
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>My Domain Name RSS Feed</title>
<description>Description of My Domain Name RSS Feed</description>
<link>http://mydomainname.com/</link>
<atom:link href="http://mydomainname.com/index.rss" rel="self" type="application/rss+xml" />

次に、このコードを試しましたが、機能しません:

//
// RSS FEED WRITER
//

$rssitem = "<item>";
$rsstitle = "<title>$title</title>";
$rsslink = "<link>http://mydomainname.com/$url.php</link>";
$rssguid = "<guid isPermalink=\"true\">http://mydomainnanme.com/$url.php</guid>";
$rsspubdate = "<pubDate>".date('D, d M Y H:i:s O')."</pubDate>";
$rssdescription = "<description>$metadescription</description>";
$rssitem1 = "</item>";
$rssatomlink = "<atom:link href=\"http://mydomainname.com/index.rss\" rel=\"self\" type=\"application/rss+xml\" />";
$rsslength_end_string = strlen($rssatomlink);
$rssfp =
fopen("index.rss","r+") or die("can't open file");
fseek($rssfp, -$rsslength_end_string, SEEK_END);
fwrite ($rssfp, "".$rssitem."\n".$rsstitle."\n".$rsslink."\n".$rssguid."\n".$rsspubdate."\n".$rssdescription."\n".$rssitem1."\n");
fclose($rssfp);
4

1 に答える 1

0

PHP Universal Feed Generatorを見てください。RSS 1.0 / 2.0 および ATOM 1.0 に対応しています。

于 2012-09-01T22:19:28.893 に答える