Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 统计更新的XML文件中的新条目?_Php_Xml - Fatal编程技术网

Php 统计更新的XML文件中的新条目?

Php 统计更新的XML文件中的新条目?,php,xml,Php,Xml,我使用xslt和多个源创建了一个包含100篇文章的XML文件。在这之后,我回显了它们的标题,按日期排序,最晚的是第一个。我在页面中只显示100个标题。当一个源帖子发布一个新帖子时,它会首先出现在我的列表中,最后100个帖子会离开列表。我显示的每个帖子都有一个类,比如p1代表第一个帖子,p2代表第二个帖子 这是news.php的主要部分 我设置了一个cron作业,每2分钟更新一次big-file.xml。另外,在index.php中,我有一个jQuery脚本,它每3分钟加载一次news.php,向

我使用xslt和多个源创建了一个包含100篇文章的XML文件。在这之后,我回显了它们的标题,按日期排序,最晚的是第一个。我在页面中只显示100个标题。当一个源帖子发布一个新帖子时,它会首先出现在我的列表中,最后100个帖子会离开列表。我显示的每个帖子都有一个类,比如p1代表第一个帖子,p2代表第二个帖子

这是news.php的主要部分

我设置了一个cron作业,每2分钟更新一次big-file.xml。另外,在index.php中,我有一个jQuery脚本,它每3分钟加载一次news.php,向访问者显示更新的新闻

注释保存在数据库或某处。只显示了100个帖子


我的问题是,当news.php更新时,是否有办法知道我的列表中出现了多少新帖子

您可以在获取整个列表时设置时间戳。然后在时间戳之后请求新元素。在服务器端,您可以从最近到更早的xml格式获取新闻,直到新闻日期在时间戳之前。您应该在客户端更新时间戳。循环

您可以使此php文件在文本文件中写入一行,以便将每个$file写入一行,并通过fread函数使脚本读取其中的行数,每3分钟它将擦除此文本文件中的所有内容。希望我能帮上忙:

如果+++$i>100,请点击这里;您可以添加以下条件:$post->date>$timestamp,其中$timestamp是一个参数。假设$_获得['timestamp']。那你就不能把它们全部展示出来。在jQuery端,您将时间戳更新为当前时间,并在下一次调用中将其传递给news.php,以此类推。我还建议使用类似SAX的解析器读取xml文件,以避免将其全部加载到memorysee php SAX解析器中
$feeds=array('big-file.xml');
$entries = array();
$xml = simplexml_load_file($feed);
$entries = array_merge($entries, $xml->xpath('//item') );

foreach ($entries as $post) {
if(++$i > 100) break;
echo $post->title;
}