Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找数据表中的文件名与目录中的文件名之间的文件名匹配_Php - Fatal编程技术网

Php 查找数据表中的文件名与目录中的文件名之间的文件名匹配

Php 查找数据表中的文件名与目录中的文件名之间的文件名匹配,php,Php,我正在尝试编写一个脚本,用于查询数据表中的文件名,然后在目录扫描的结果中查找文件名匹配项。 我已经知道数据表中的文件名与我正在扫描的目录中的文件具有相同的格式,即 全部为小写字母,不带spical字符或空格 似乎发生的是while循环只匹配数据表和扫描目录中的一条记录。 有人能看出我哪里出了错吗 我正在编写的代码是: $sql = "SELECT CompanyName, ImageName, HotelID FROM conf_image_depository ORDER BY Im

我正在尝试编写一个脚本,用于查询数据表中的文件名,然后在目录扫描的结果中查找文件名匹配项。 我已经知道数据表中的文件名与我正在扫描的目录中的文件具有相同的格式,即 全部为小写字母,不带spical字符或空格

似乎发生的是while循环只匹配数据表和扫描目录中的一条记录。 有人能看出我哪里出了错吗

我正在编写的代码是:

$sql = "SELECT CompanyName, ImageName, HotelID FROM conf_image_depository ORDER BY ImageName ASC";
$sqlfile = mysqli_query($db, $sql);
$source = "boards/temp1";
$destination = "boards/temp2";
$scan = scandir('boards/temp1');
natcasesort($scan);
while ($row  = mysqli_fetch_assoc($sqlfile)){
foreach($scan as $value) {
    if($value == $row['ImageName']){
        echo "File match copied: " .$value." - ". $row['ImageName']."</br>";
    } else {
        echo "File not copied: " .$value."</br>";
    }
}
}

在@ChrisHaas的帮助下,我有了这些作品。我所需要做的就是:

while ($row = mysqli_fetch_assoc($sqlfile)){ if(is_file('boards/temp1/' . 
$row['ImageName'])){ 
  echo "File match copied:---- ". $row['ImageName']."</br>"; 
copy($source."/".$row['ImageName'], $destination."/".$row['ImageName']); //} 
}else { 
  echo "No File match</br>"; } }

你需要斯堪的纳维亚吗?你不能像ifis_文件“boards/temp1/”那样做吗$行['ImageName']{…}可能您可以使用和/或如果您的值的格式相同。另外,在foreach循环后可能缺少reset$scan。@Chris Haas您好,您的代码工作得很好,非常感谢。我打算尝试使用扫描结果获取任何匹配文件的名称,以便以后可以将匹配文件复制到另一个目录中,但由于ifis_文件没有提供文件名,我不知道如何才能使其工作。@ChrisHaas。工作我所要做的就是:虽然$row=mysqli_fetch_assoc$sqlfile{ifis_file'boards/temp1/'.$row['ImageName'].{echo file match copied:-.$row['ImageName'];copy$source./.$row['ImageName'],$destination./.$row['ImageName'];/}}否则{echo No file match;}@DCJones,我很好,如果你只是想写下来作为你自己的答案,并接受它。很高兴它成功了!