首页 文章

如何基于表单复选框创建.gif文件数组

提问于
浏览
1

Objective: 有一种用户可以选择的复选框类别,它可以从所选目录生成所有.gif文件的数组 .

我猜想解决这个问题的方法是创建一个目录数组来传递给glob()函数 . 但我的问题是正确格式化目录参数 . 或者也许有一种更有效的方法来实现这一目标 .

Sample Code:

<form method="get">
  <input type="checkbox" name="category_1" value="true">
  <input type="checkbox" name="category_2" value="true">
  <input type="checkbox" name="category_3" value="true">
  <input type="checkbox" name="category_4" value="true">
  <input type="checkbox" name="category_5" value="true">
<input type="submit" value="submit">
</form>

<?php
$dir = [];  //INITIALIZE DIR - ONLY REFERENCED IN IF STATEMENTS
if(isset($_GET['category_1'])){
  $dir[] = "gif/category_1/*.gif"
}
if(isset($_GET['category_2'])){
  $dir[] = "gif/category_2/*.gif"
}
if(isset($_GET['category_3'])){
  $dir[] = "gif/category_3/*.gif"
}
if(isset($_GET['category_4'])){
  $dir[] = "gif/category_4/*.gif"
}
if(isset($_GET['category_5'])){
  $dir[] = "gif/category_5/*.gif"
}

$images = glob(foreach($dir as $path){echo $path}, GLOB_BRACE)
?>

这里的问题是多个glob参数必须用逗号分隔,这样我就可以在echo $ dir []循环中附加一个逗号,但它仍然会在末尾留下一个无效的逗号 .

Example:

<?php echo $path.','; // this would leave comma at end. ?>

我在正确的轨道上吗?或者有更好的方法来做到这一点 . 在此先感谢大家的帮助!

3 回答

  • 0

    您可以使用implode()函数 . 如下 .

    $images = glob(implode(",", $dir), GLOB_BRACE);
    
  • 2

    implode将返回带有','的连接字符串而不留下尾随逗号并避免 foreach 循环

    $images = glob(implode(',', $dir), GLOB_BRACE)
    
  • 0

    如果我理解你的问题,你可以使用implode .

    $images = glob(implode(",", $dir), GLOB_BRACE)
    

    Implode将以逗号分隔输出数组项 .

相关问题