drh96824 2013-12-18 21:07
浏览 62
已采纳

在php中按pubdate排序rss

I am trying to sort my RSS feed by pubdate, but untill now unsuccesfully i have tried usort method but i cant get the code to work

My actual rss page link click here

and here is my php code to display a feed page

    <?php
$rssfeed = "<?xml version='1.0' encoding='ISO-8859-1'?>
<rss version='2.0'>
<channel>
        <title>My RSS feed</title>
        <link>http://" . $_SERVER['HTTP_HOST'] . "/</link>
        <description>This is an example RSS feed</description>
        <language>en-us</language>
        <copyright>Copyright (C) 2009 mywebsite.com</copyright>
";
$links = scandir('pages/');
$links = array_diff($links, array('.', '..', 'subpages', 'protected'));
foreach($links as $link){
$descr = file_get_contents('description/' . $link);
$descr = str_replace(array('\\'), array(''), $descr);   
$pub = date ('Y m d Hi:s', filemtime('pages/'.$link));
    $rssfeed .= "<item>
            <title>".$link."</title>
<description>".$descr."</description>
<link>http://" . $_SERVER['HTTP_HOST'] . "/index.php?p=".$link."</link>
            <pubDate>".$pub."</pubDate>
                </item>";
}

$links = scandir('pages/subpages/');
$links = array_diff($links, array('.', '..'));
foreach($links as $link){
$descr = file_get_contents('description/' . $link);
$descr = str_replace(array('\\'), array(''), $descr);   
$pub = date ('Y m d Hi:s', filemtime('pages/subpages/'.$link));
    $rssfeed .= "<item>
            <title>".$link."</title>
<description>".$descr."</description>
<link>http://" . $_SERVER['HTTP_HOST'] . "/index.php?p=".$link."</link>
            <pubDate>".$pub."</pubDate>
                </item>";
}
    $rssfeed .= "</channel></rss>";
echo $rssfeed;
?>

i tried before with usort somthing like

function cmp($pub, $b)
{
    if ($pub == $b) {
        return 0;
    }
    return ($pub < $b) ? -1 : 1;
}
usort($a, "cmp");

vut i cant get it to work. Any thoughts? all help is much appreciated

  • 写回答

1条回答 默认 最新

  • dotwc62080 2013-12-18 21:40
    关注

    this can be performed using date_diff() function of PHP check it here http://php.net/manual/en/datetime.diff.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog