0

PHPに関しては、私は非常に基本的です。

私のウェブサイトには、「uploads」というディレクトリがあります

「アップロード」内に、「Example1」、「Example2」、「Example3」の 3 つのフォルダーがあります。

各フォルダー内には、画像が含まれています。

php を使用してすべてのサブディレクトリのナビゲーションを作成する方法を知る必要があります。新しいフォルダー「Example4」を追加すると、次のようなナビゲーションが表示されます。

お探しのセクションを選択してください:

  Example1 | Example2 | Example3

後で新しいフォルダーを追加する場合は、それらをナビゲーションに追加します。元:

  Example1 | Example2 | Example3 | Example4 | Example5

次に、リンクをクリックしてフォルダーに移動したら、そのフォルダー内のすべての画像を表示するコードを用意します。

これまでのところ、私は持っています:

<?php
$files = glob("uploads/*.*");
for ($i=0; $i<count($files); $i++)
{
$num = $files[$i];
echo '<a href="/'.$num.'"><img src="/'.$num.'"></a>'."<p>";
}
?>

ただし、アップロード ディレクトリ内の画像のみが表示され、Example1 などの画像は表示されません。

いったいどうすればこれを行うことができますか?学校のプロジェクトでやっていて、完成までに 2 週間ありますが、とても迷っています。私は CSS と HTML に関する知識しか持っていません。私が知っている唯一の PHP は php インクルードです。

4

4 に答える 4

1

グロブに少し慣れているように見えるので、「グロブ」関数を使用した例を次に示します。ここで探しているものの基本的な作業例を見ることができます: http://newwebinnovations.com/glob-images/

例を設定する方法は次のとおりです。

2 つの PHP ファイルがあり、1 つは index.php で、もう 1 つは list-images.php です。

画像用のフォルダーもあり、その中に画像が含まれる 2 つのサブフォルダーがあります。

index.php は、イメージ フォルダー内のフォルダーを検索し、フォルダー内のイメージを表示するリンク list-images.php を含むリストに配置するファイルです。

$path = 'images';
$folders = glob($path.'/*');
echo '<ul>';
foreach ($folders as $folder) {
    echo '<li><a href="list-images.php?folder='.$folder.'">'.$folder.'</a></li>';
}
echo '</ul>';

上で作成したリンクには、list-images.php ページへのリンクを渡す動的変数が作成されています。

list-images.php コードは次のとおりです。

if (isset($_GET['folder'])) {
    $folder = $_GET['folder'];
}
$singleImages = array();
foreach (glob($folder . '/*.{jpg,jpeg,png,gif}', GLOB_BRACE) as $image) {
    $imageElements = array();
    $imageElements['source'] = $image;
    $singleImages[$image] = $imageElements;
}
echo '<ul>';
foreach ($singleImages as $image) {
    echo '<li><a href="'.$image['source'].'"><img src="'.$image['source'].'" width="400" height="auto"></a></li>';
}
echo '</ul>';

ここで作成されたリンクは、個々の画像にリンクします。

于 2013-08-28T04:45:22.167 に答える
0

イメージ名のサブディレクトリ名としてイメージを作成し、データベースに保存します

例:

サブディレクトリ名: example2

画像名:image.jpg

画像名を「example2/image.jpg」としてデータベースに保存

于 2013-08-28T04:27:25.103 に答える
0

まず、ディレクトリ関連の PHP マニュアル: opendir、ファイル関連のファイル: fopenをよく読んでください。

次のコードは、基本的に opendir で提供されているサンプル コードを再配置したものです。機能:

ディレクトリ パスが有効でディレクトリであるかどうかを単純にチェックするscan_directory関数。子ディレクトリがある場合は再帰呼び出しを実行し、そうでない場合はファイル名を出力します。

最初の if/else 条件は、ベース ディレクトリが有効であることを確認するためのものです。

ulliを追加して、もう少し見やすくします。

$base_dir = 'upload';

if (is_dir($base_dir)) 
    scan_directory($base_dir);
else 
    echo 'Invalid base directory. Please check your setting.';

// recursive function to check all dir
function scan_directory($path) {
    if (is_dir($path)) {
        if ($dir_handle = opendir($path)) {
            echo '<ul>';
            while (($file = readdir($dir_handle)) !== false) {
                if ($file != '.' && $file != '..') {
                    if (is_dir($path . '/' . $file)) {
                        echo '<li>';
                        echo $file;
                        scan_directory($path . '/' . $file);
                        echo '</li>';
                    }
                    else
                        echo "<li>{$file}</li>";
                }
            }
            echo '</ul>';
        }
    }
}
于 2013-08-28T04:02:14.783 に答える