更新
我每天导入一个XML Feed,每24小时通过一个XML Feed供应商进行更新,然后将其转储到我们的FTP中。该文件以日期,然后是导出时间开始,后跟文件名的其余部分。
因此,每天都有新文件添加到我们的FTP中,我使用date()
来获取日期,但时间可能会因时间而异服务器运行导出(通常只有一分钟左右)。
所以我需要的是在$date
&之间传递4个数字值。 $file
因此从必要的文件夹中获取最新文件?
脚本将多个值连接在一起以创建URL,然后将该值设置为location
中的header();
:
<?php
$date = date("Ymd");
$webroot = "http://WEBSITE-URL/";
$file = "-XML-FILE.xml";
$xmlfilelocation = $webroot.$date."0206".$file;
header('Location: '.$xmlfilelocation);
?>
0206
字符串是时间,可能会有所不同,无论如何我可以传递任何值吗?
创建一个$time = ???;
变量,可能等于 ANY 4个字符?
答案 0 :(得分:2)
您可以使用glob()
功能。由于可能有多个文件,您可能想要返回第一个文件:
$serverRoot = '/the/real/server/location/';
chdir($serverRoot); // go to the directory where the file is located
$xmlfile = $date."*".$file;
foreach (glob($xmlfile) as $filename) {
header('Location: '.$webroot.$filename);
break; // or even exit
}
注意:您必须使用glob()
功能的服务器路径。
答案 1 :(得分:0)
最后,我使用了另一种方法:
<?php
//Get web directory
$webdir = "THE-URL";
//Get local directory for scandir
$dir = 'THE-DIRECTORY';
//Create array of file names
$filelist = scandir($dir);
//Count file name and reduce by 1 to account for [0] array item
$recordcount = count($filelist) - 1;
//Get the latest filename from array
$latestfile = $filelist[$recordcount];
//Compile the web directory and filename to create a URL
$xmlfile = $webdir.$latestfile;
//Redirect to necessary URL
header('Location: '.$xmlfile);
?>