
[英]PHP: Warning: file_get_contents(): Filename cannot be empty in
[英]PHP - Get File Contents Without Filename
我有一个PHP脚本,该脚本基于文件名获取文本文件的内容,使用正则表达式进行一系列查找和替换,然后将清理后的文件输出到另一个文件夹。
该代码如下所示,以供参考:
<?php
$test = file_get_contents('GlobalTest.txt');
$test1 = preg_replace('/[\r\n]+/', "\r\n", $test);
$result = preg_replace('/;\w+;\d+;\d+%.+/m', '', $test1);
$resulta = preg_replace('/^((?!Athens|Baghdad|Hong Kong|Jerusalem|London|Mexico City|Moscow|Paris|Rio de Janeiro|Rome|Tokyo|Global Forecast|~_~_~_~_~_).)*$/m', '', $result);
$resultb = preg_replace('/^(?:[\t]*(?:\r?\n|\r))+/m', '', $resulta);
$resultc = preg_replace('/;.+\D;/m', ';', $resultb);
$resultd = preg_replace('/^(.*?);(?=.*;)/m', '$1 ', $resultc);
$resulte = preg_replace('/;/m', '/', $resultd);
$resultf = preg_replace('/<e0>/m', '', $resulte);
file_put_contents('/Users/asage/Desktop/Forecast/OUT/Output Global Test.txt', $resultf);
unlink ('GlobalTest.txt');
?>
可能有一些方法可以解决此问题,但目前可以使用。
这个想法是,原始文本文件每天都将以不同的方式命名(“ GlobalTest02122019.txt”,“ 20190213Global.txt”等),然后放入标有IN的文件夹中。
我的问题是,有没有一种方法可以获取放置在此IN文件夹中的任何文本文件的内容,而不管其名称如何? 此工作流程的理想方法是不必重命名任何文件。
另外,有没有办法将文件输出到OUT文件夹并保留原始文件名?
您可以提供的任何输入将不胜感激。 我尝试浏览过去的问题,但找不到与我要找的东西相似的东西。
如果它是目录中唯一的文件,或者可以匹配以将其隔离的模式(即,它是唯一以“ Global”开头的文件),则glob()
函数将使您到达该位置。 基本上,它返回与“传统”通配符样式引用匹配的文件/目录数组,例如您通过ls
或dir
ivan@darkstar:~$ ls t
file1 file2
ivan@darkstar:~$ cat e.php
<?php
$files=glob("./t/*");
print_r($files);
?>
ivan@darkstar:~$ php e.php
Array
(
[0] => ./t/file1
[1] => ./t/file2
)
ivan@darkstar:~$
使用glob()
可能的文件列表,遍历数组以查找文件模式(或处理每个文件,或处理唯一的文件,视情况而定),找到后调用您的处理函数,将其传递给现在已知的非通配文件路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.