我正在尝试创建一些代码,首先检查目录的内容以查看是否存在文件,如果存在,则在文件名后追加一个数字。不幸的是,目前我无法让它工作,php没有产生错误,但如果已存在文件,则不会创建新文件。这是我目前的代码:
$Scan_Name_Output = "dirbuster_" . $workload["Scan_Name"] . "_output.txt";
$Check_Output = exec("ls " . $Output_Directory . " | grep -w " . $Scan_Name_Output);
$j = 1;
while (!empty($Check_Output))
{
$Scan_Name_Output = $Scan_Name_Output . $j;
$j++;
如果我把while循环替换成if语句,它就能工作——所以不是文件路径或其他原因导致问题。我尝试了很多组合,但无法使其工作。
我尝试使用file_exists(),但它不起作用——我认为这是因为我正在传递已经通过escapeshellarg()处理的变量给它。因此,我认为file_exists会准确地查找/path/to/dir/'Report1.txt'——显然'Report1.txt'不存在,而Report1.txt存在。这就是为什么我使用exec和ls的原因。
感谢任何回复。