Php 如何从不同文件夹中删除两个同名文件?

Php 如何从不同文件夹中删除两个同名文件?,php,file-io,Php,File Io,这是php代码: if (array_key_exists('delete_file', $_POST)) { $filename = $_POST['delete_file']; if (file_exists($filename)) { unlink($filename); echo 'File '.$filename.' has been deleted'; } else { echo 'Could not delete '.$filename.', f

这是php代码:

if (array_key_exists('delete_file', $_POST)) {
  $filename = $_POST['delete_file'];
  if (file_exists($filename)) {
    unlink($filename);
    echo 'File '.$filename.' has been deleted';
  } else {
    echo 'Could not delete '.$filename.', file does not exist';
  }
}
表格如下:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_file" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';
echo';
回声';
回声';
回声';

我有两个文件夹,图像和缩略图。我想从两个文件夹中删除同名文件。使用上面的代码,我可以从一个文件夹中删除该文件。我应该复制第一个代码并在表单中添加第二个隐藏输入,还是解决此问题最简单的方法?(
$file
包含缩略图的路径和文件,
$file2
包含大图像的路径和文件)

添加文件夹数组和foreach循环

if (array_key_exists('delete_file', $_POST)) {
    $folders = ['images/', 'thumbnails/'];
    $filename = $_POST['delete_file'];
    foreach($folders as $folder) {
        if (file_exists($folder . $filename)) {
            unlink($folder . $filename);
            echo 'File '. $folder . $filename.' has been deleted';
        } else {
            echo 'Could not delete '. $folder . $filename.', file does not exist';
        }
    }
}

添加文件夹数组和foreach循环

if (array_key_exists('delete_file', $_POST)) {
    $folders = ['images/', 'thumbnails/'];
    $filename = $_POST['delete_file'];
    foreach($folders as $folder) {
        if (file_exists($folder . $filename)) {
            unlink($folder . $filename);
            echo 'File '. $folder . $filename.' has been deleted';
        } else {
            echo 'Could not delete '. $folder . $filename.', file does not exist';
        }
    }
}

添加文件夹数组和foreach循环

if (array_key_exists('delete_file', $_POST)) {
    $folders = ['images/', 'thumbnails/'];
    $filename = $_POST['delete_file'];
    foreach($folders as $folder) {
        if (file_exists($folder . $filename)) {
            unlink($folder . $filename);
            echo 'File '. $folder . $filename.' has been deleted';
        } else {
            echo 'Could not delete '. $folder . $filename.', file does not exist';
        }
    }
}

添加文件夹数组和foreach循环

if (array_key_exists('delete_file', $_POST)) {
    $folders = ['images/', 'thumbnails/'];
    $filename = $_POST['delete_file'];
    foreach($folders as $folder) {
        if (file_exists($folder . $filename)) {
            unlink($folder . $filename);
            echo 'File '. $folder . $filename.' has been deleted';
        } else {
            echo 'Could not delete '. $folder . $filename.', file does not exist';
        }
    }
}

您可以调整命名方案,以便只需要1个隐藏输入。$file变量只需要包含文件名,而不需要包含路径。将路径保留在php脚本中,并将其附加到从表单接收的值中。您可以使用
basename
函数剥离表单源中的路径。你应该在回音语句中使用逗号

if (array_key_exists('delete_file', $_POST)){
 $filename='thumbs/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
 $filename='pics/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
}

您可以调整命名方案,以便只需要1个隐藏输入。$file变量只需要包含文件名,而不需要包含路径。将路径保留在php脚本中,并将其附加到从表单接收的值中。您可以使用
basename
函数剥离表单源中的路径。你应该在回音语句中使用逗号

if (array_key_exists('delete_file', $_POST)){
 $filename='thumbs/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
 $filename='pics/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
}

您可以调整命名方案,以便只需要1个隐藏输入。$file变量只需要包含文件名,而不需要包含路径。将路径保留在php脚本中,并将其附加到从表单接收的值中。您可以使用
basename
函数剥离表单源中的路径。你应该在回音语句中使用逗号

if (array_key_exists('delete_file', $_POST)){
 $filename='thumbs/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
 $filename='pics/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
}

您可以调整命名方案,以便只需要1个隐藏输入。$file变量只需要包含文件名,而不需要包含路径。将路径保留在php脚本中,并将其附加到从表单接收的值中。您可以使用
basename
函数剥离表单源中的路径。你应该在回音语句中使用逗号

if (array_key_exists('delete_file', $_POST)){
 $filename='thumbs/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
 $filename='pics/'.$_POST['delete_file'];
 if (file_exists($filename)){
  unlink($filename);
  echo'File ',$filename,' has been deleted';
 } else {
  echo'Could not delete ',$filename,', file does not exist';
 }
}

简单的方法:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="hidden" value="'.$file2.'" name="delete_thumb" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

更好的方法是让$file只包含图像文件名(而不是它的路径),并让所有拇指的命名方式与其对应的图像相同。然后你可以使用:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

简单的方法:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="hidden" value="'.$file2.'" name="delete_thumb" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

更好的方法是让$file只包含图像文件名(而不是它的路径),并让所有拇指的命名方式与其对应的图像相同。然后你可以使用:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

简单的方法:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="hidden" value="'.$file2.'" name="delete_thumb" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

更好的方法是让$file只包含图像文件名(而不是它的路径),并让所有拇指的命名方式与其对应的图像相同。然后你可以使用:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

简单的方法:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="hidden" value="'.$file2.'" name="delete_thumb" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

更好的方法是让$file只包含图像文件名(而不是它的路径),并让所有拇指的命名方式与其对应的图像相同。然后你可以使用:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_image" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';
非常感谢:)我更喜欢最后一个:)非常感谢:)我更喜欢最后一个:)非常感谢:)我更喜欢最后一个:)非常感谢:)我更喜欢最后一个:)