将“任何字符”传递给PHP值?

时间:2014-12-09 10:14:38

标签: php

更新

我每天导入一个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个字符?

2 个答案:

答案 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);

?>