0

多くの画像と他のフォルダー/ディレクトリを含むフォルダー/ディレクトリがあります。

次のコードを使用して、これらのファイルのプレビューを表示しています。

<?php
      $images=array();  
        $dir_handler = opendir('test') or die("Unable to open path");  
        $i=0;    
        while($file = readdir($dir_handler))
        {            
        if(is_dir($file)) 
        continue;        
        else if($file != '.' && $file != '..' && $file != 'index.php')
        {                    
        $images[$i]=$file;
        $i++;     
        }       
        }      
        sort($images);

        for($i=0; $i<sizeof($images); $i++) 
        {              

        echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>";

        }        closedir($dir);
?>

問題は、各ファイル(各画像またはフォルダ)に個別のボタンを割り当てたいことです。各ボタンをクリックすると、対応する画像(またはフォルダ/ディレクトリ)がメインフォルダから削除され、表示されなくなりますプレビュー。

もう 1 つの小さな問題は、上記のコードではフォルダーのプレビューが表示されないことです。なんで?どんな助けでも大歓迎です。

4

2 に答える 2

0

常に画像を表示しているため、$images 配列の値が画像かフォルダーかを確認する必要があります。次に、ディスプレイで別のことを行います。

ファイルまたはフォルダーを削除するには、それぞれ次の関数を使用します。

unlink();
rmdir();

http://www.php.net/manual/en/function.rmdir.php

http://php.net/manual/en/function.unlink.php

イメージがコードを次のように変更する前に、フォルダーのリストを追加するには:

<?php
  $images=array();  
  $folders = array();
    $dir_handler = opendir('test') or die("Unable to open path");  
    $i=0;    
    while($file = readdir($dir_handler))
    {            
    if(is_dir($file)) {
         $folders[count($folders)] = $file;
    }   
    else if($file != '.' && $file != '..' && $file != 'index.php')
    {                    
    $images[$i]=$file;
    $i++;     
    }       
    }      
    sort($images);

    foreach($folders as $folder){

     echo "<a href='#'>$folder</a>";
    }

    for($i=0; $i<sizeof($images); $i++) 
    {              

    echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>";

    }   

 closedir($dir);
?>

次に、ビュー内のフォルダーのビジュアル要素を構築し、必要に応じて unlink() および rmdir() を実行する関数にリンクするだけです。

于 2013-02-05T16:50:42.970 に答える
0

ここでいくつかの質問があります。

最初の質問: フォルダのプレビューが表示されないのはなぜですか? これは、$images 配列をループしてプレビューを表示するが、その配列にディレクトリを追加しないためです (is_dir かどうかを確認してから「continue;」を呼び出すコードを参照してください)。ディレクトリを含めたい場合は、それらを $images 配列に含める必要があります (またはそれらで何か他のことを行います)。

2 番目の質問: 削除の方法を教えてください。既存の PHP スクリプトを拡張するか、別のスクリプトを作成する必要があります。削除アイコンにリンクを作成します。リンクの href は新しい (または既存の) PHP スクリプトへのものであり、削除するフォルダーまたはファイルをパラメーターとして渡します。フォルダの場合は、rmdir() を使用します。ファイルの場合は、unlink() を使用します。必要に応じて、後でこれについて詳しく説明できます。

于 2013-02-05T16:52:45.830 に答える