Php 如何将新的RSS项目行写入顶部

Php 如何将新的RSS项目行写入顶部,php,rss,fopen,fwrite,fseek,Php,Rss,Fopen,Fwrite,Fseek,我拼凑了一些代码,也许可以写得更好——但它很有效,我学会了不要挑剔函数代码。无论如何,我这里有一些代码可以自动更新一个sitemap.xml文件和一个RSS提要文件“问题——我为什么在这里发布这个问题的原因” 写入sitemap.xml文件非常有效!我很高兴。这很容易,因为它在文件的底部写入新数据,然后通过写入来结束 但是,对于rss提要文件,我需要新的条目才能放在顶部。我似乎不知道该怎么做。所以,这里附上的是我的代码的当前副本。基本上,标题为RSS提要编写器的第二部分与标题为SITEMAP.X

我拼凑了一些代码,也许可以写得更好——但它很有效,我学会了不要挑剔函数代码。无论如何,我这里有一些代码可以自动更新一个sitemap.xml文件和一个RSS提要文件“问题——我为什么在这里发布这个问题的原因”

写入sitemap.xml文件非常有效!我很高兴。这很容易,因为它在文件的底部写入新数据,然后通过写入
来结束

但是,对于rss提要文件,我需要新的条目才能放在顶部。我似乎不知道该怎么做。所以,这里附上的是我的代码的当前副本。基本上,标题为RSS提要编写器的第二部分与标题为SITEMAP.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);
//
//SITEMAP.XML编写器
//
$sitemapurl=“”;
$sitemaploc=“”;
$sitemaplocation=”http://mydomainname.com/$url.php”;
$sitemaploc1=“”;
$sitemappri=“”;
$sitemapriority=“1.0”;
$sitemappri1=“”;
$sitemapcha=“”;
$sitemapchange=“每日”;
$sitemapcha1=“”;
$sitemapurl1=“”;
$sitemapurlset=“\n”;
$sitemaplength\u end\u string=strlen($sitemapurlset);
$sitemapfp=
fopen(“sitemap.xml”、“r+”)或die(“无法打开文件”);
fseek($sitemapfp,-$sitemaplength_end_string,SEEK_end);
fwrite($sitemapfp,“\n”。$sitemapurl.”\n.“$sitemaplocation.”“$sitemaplocation.”“$sitemaploc1.”\n.“$sitemappriority.”“$sitemappri1.”\n.“$sitemapcha.”“$sitemapchange.”“$sitemapcha1.”“\n.“$sitemapurlset.”//已将url集添加到此处
fclose($sitemapfp);
//
//RSS源编写器
//
$rssitem=“”;
$rstitle=“$title”;
$rsslink=”http://mydomainname.com/$url.php”;
$rssguid=”http://mydomainname.com/$url.php”;
$rsspubdate=“.date('D,dm Y H:i:so');
$rssdescription=“$metadescription”;
$rssitem1=“”;
$rsschannelrsset=“\n\n”;
$rsslength_end_string=strlen($rsschannelrsset);
$rssfp=
fopen(“index.rss”、“r+”)或die(“无法打开文件”);
fseek($rssfp,-$rsslength_end_string,SEEK_end);
fwrite($rssfp,“$rssitem.”\n“$rsstitle.”\n“$rsslink.”\n“$rssguid.”\n“$rsspubdate.”\n“$rssddescription.”\n“$rssitem1.”\n“$rsschannelrsset.”\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源
我的域名RSS源的描述
http://mydomainname.com/
然后我尝试了此代码,但它不起作用:

//
// 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);
//
//RSS源编写器
//
$rssitem=“”;
$rstitle=“$title”;
$rsslink=”http://mydomainname.com/$url.php”;
$rssguid=”http://mydomainnanme.com/$url.php”;
$rsspubdate=“.date('D,dm Y H:i:so');
$rssdescription=“$metadescription”;
$rssitem1=“”;
$rssatomlink=“”;
$rsslength_end_string=strlen($rssatomlink);
$rssfp=
fopen(“index.rss”、“r+”)或die(“无法打开文件”);
fseek($rssfp,-$rsslength_end_string,SEEK_end);
fwrite($rssfp,“$rssitem.”\n“$rsstitle.”\n“$rsslink.”\n“$rssguid.”\n“$rsspubdate.”\n“$rssddescription.”\n“$rssitem1.”\n”);
fclose($rssfp);

请看一下。它支持RSS 1.0/2.0和ATOM 1.0。

为什么不为此使用一个应用程序?我不知道。我会研究它,因为我有时间,但现在我只想完成这段代码,以便它可以发挥作用。一旦启动并运行,我还可以在网站上线后对其进行改进。我会在可以的时候看一看。同时,我真正需要的是找到一种方法,让命令直接写在这行下面:`“rel=”self“type=”application/rss+xml“/>`在index.rss文件中。如果我能弄明白,那么这就是我现在所需要的。我强烈建议你停止自己的努力。使用一个框架可以让我们专注于RSS,而不是PHP代码。使用框架,很可能会简化或消除当前的问题。此外,最好使用数组来管理数据,而不是使用大量变量。PHP的数组有大量的操作集——非常适合操作它们的内容。我非常感谢您的见解。这些无疑是很好的观点。要使这段代码发挥作用,我所要做的就是找到一种方法,直接在index.rss文件的这一行下面写:
。从那以后,我不反对学习如何更好、更好地做事。但就目前而言,这将起到很好的作用。如需特别协助修改代码,以便直接在该行下方书写,将不胜感激。:)现在我出局了。以上代码的结构太少,无法应用良好的修复。尽管如此:为什么不创建一个函数/方法来封装一些工作呢。