Php 从服务器文件夹创建自动RSS源

Php 从服务器文件夹创建自动RSS源,php,rss,podcast,rss2,Php,Rss,Podcast,Rss2,我有一个安装了PHP的VPS web服务器,有几个文件夹,里面有学校的录音。我想为每个文件夹生成一个RSS提要,按字母顺序列出.mp3文件(因为它们包含像001 filename这样的数字前缀)。目前有没有可行的方法?我在网上找到了这两个脚本,但它们似乎都不适合我 N°2似乎是最简单的脚本,但如果我编辑变量并将其上载到适当的文件夹,它似乎不起作用。这是我导航到我的页面的结果: ?xml version=“1.0”?>0{$files[]['name']=$file;$files[]['tim

我有一个安装了PHP的VPS web服务器,有几个文件夹,里面有学校的录音。我想为每个文件夹生成一个RSS提要,按字母顺序列出.mp3文件(因为它们包含像001 filename这样的数字前缀)。目前有没有可行的方法?我在网上找到了这两个脚本,但它们似乎都不适合我

  • N°2似乎是最简单的脚本,但如果我编辑变量并将其上载到适当的文件夹,它似乎不起作用。这是我导航到我的页面的结果:

    ?xml version=“1.0”?>0{$files[]['name']=$file;$files[]['timestamp']=filectime($file);}}}}closedir($dir);//natcasesort($files);-我们将使用日期和时间对列表进行排序。对于($i=0;$i\n“echo”\n“echo”。$feedBaseURL.$files[$i]['name']。“\n”echo.$files[$i]['name']。“\n”//echo.”日期($dmj G:i:sty“,$files[$i]['timestamp'])。“\n”//echo”。$files[$i]['timestamp']。“\n”echo“\n”echo”}

    这是我的php版本 PHP 5.6.17-0+deb8u1(cli)(构建时间:2016年1月13日09:10:12)

    我的最终结果应该是:

    website.com/chemistry/为所有化学音频文件提供RSS源


    website.com/english/为所有英语音频文件提供RSS提要

    首先获取原始github脚本,将其保存到一个文件(扩展名为.php)并上传到您的服务器,以确保其按原样工作。我得到以下信息(在Chrome中)(我将网站名称更改为example.com,以便在此处发布):

    
    我的音频提要
    http://www.example.com/audio
    某些服务器文件夹中“我的音频文件”的源
    

    如果可行,请尝试将
    替换为
    。github的脚本包含混合了XML的php代码,并且您的输出表明出现了一些问题(语法问题,缺少
    ),首先将原始github脚本保存到一个文件中(扩展名为.php)并将其上传到您的服务器,以确保其正常工作。我得到以下信息(在Chrome中)(我将网站名称更改为example.com,以便在此处发布):

    
    我的音频提要
    http://www.example.com/audio
    某些服务器文件夹中“我的音频文件”的源
    

    如果可以的话,试着用
    替换
    (语法问题,缺少
    替换
    中出现的php代码的每个开头替换
    中出现的php代码的每个开头摘要:

    下面是我要做的事情,以使GitHub脚本工作

    首先,您需要有适当的扩展。

    第14行:
    $allowed\u ext=“.mp4.mp4.mp3.mp3”

    确保第一个分机前面有一个
    或一些字符(甚至可以是
    *

    示例
    $allowed\u ext=“.mp3”

    发生的是
    strpos()检查文件扩展名的
    是检查以确保
    mp3
    在列表中并返回位置。如果前面没有
    ,则如果它是第一个扩展名且代码大于0,它将返回0,
    >0
    ,因此它将不返回任何结果,并且您将错过所有具有该扩展名的文件st扩展已列出

    我做的第二件事是去掉区分大小写的文件扩展名。

    第30行
    $ext=strtoupper($path_info['extension']);

    它会自动将扩展名设置为大写,因此扩展名列表中的
    “.mp3、.mp3”
    是多余的,并且会忽略
    “mp3”
    扩展名,因为它是小写的

    这是我修订的
    第32行
    。我强制
    $allowed\u ext
    变量在
    strpos
    中为大写,以匹配
    $ext
    变量的脚本力

    if($file !== '.' && $file !== '..' && !is_dir($file) && strpos(strtoupper($allowed_ext), $ext)>0)  
    

    摘要:

    下面是我要做的事情,以使GitHub脚本工作

    首先,您需要有适当的扩展。

    第14行:
    $allowed\u ext=“.mp4.mp4.mp3.mp3”

    确保第一个分机前面有一个
    或一些字符(甚至可以是
    *

    示例
    $allowed\u ext=“.mp3”

    发生的是
    strpos()检查文件扩展名的
    是检查以确保
    mp3
    在列表中并返回位置。如果前面没有
    ,则如果它是第一个扩展名且代码大于0,它将返回0,
    >0
    ,因此它将不返回任何结果,并且您将错过所有具有该扩展名的文件st扩展已列出

    我做的第二件事是去掉区分大小写的文件扩展名。

    第30行
    $ext=strtoupper($path_info['extension']);

    它会自动将扩展名设置为大写,因此扩展名列表中的
    “.mp3、.mp3”
    是多余的,并且会忽略
    “mp3”
    扩展名,因为它是小写的

    这是我修订的
    第32行
    。我强制
    $allowed\u ext
    变量在
    strpos
    中为大写,以匹配
    $ext
    变量的脚本力

    if($file !== '.' && $file !== '..' && !is_dir($file) && strpos(strtoupper($allowed_ext), $ext)>0)  
    

    我尝试以干净的方式上载它,但出现以下错误:0{$files[]['name']=$file;$files[]['timestamp']=filectime($file);}}}closedir($dir);//natcasesort($files);-我们将使用日期和时间对列表进行排序。对于($I=0;$I\n;“echo”\n;“echo”。$feedBaseURL.$files[$I]