2013-08-28 68 views
0

我非常基本的說到PHP。PHP將鏈接發佈到子目錄和PHP來顯示圖像

我的網站,我有一個名爲「上傳」

在「上傳」我有3個文件夾「例1」,「例題」和「示例3」

在每一個文件夾,它們包含目錄圖片。

我需要知道如何使用php來創建每個子目錄的導航。 所以,如果我添加了一個新的文件夾「範例4」將會給像導航:

選擇哪個部分你正在尋找:

Example1 | Example2 | Example3 

,如果我以後再添加新的文件夾並將其添加到導航。 EX:

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>"; 
} 
?> 

,但它只會顯示在上傳目錄的圖像,而不是在例1等的圖像。

我該怎麼做呢?我正在做一個學校項目,並有兩個星期完成它,但我很迷茫。我只有CSS,HTML的知識,以及我知道的唯一PHP是PHP包含的,所以任何幫助將不勝感激。

+0

圖片是使用斑點存儲在文件夾或數據庫中的嗎?你的數據庫是什麼樣的?給我一些細節,我們會幫助你!在您的到期日之前。 :) –

+0

如何將圖像存儲在數據庫中? – Backtrack

回答

0

讓每一個特定的文件夾中的文件,通過它拋出一個包含文件夾的名稱的GET變量,然後掃描該文件夾的顯示圖片,網址應該是這樣的:

listImages.php?folderName=example1 

要有菜單像你想要什麼:

<?php 
    $path = 'uploads/' ; 
    $results = scandir($path); 
    for ($i=0;$i<count($results);$i++ ) { 
     $result=$results[$i]; 
     if ($result === '.' or $result === '..') continue; 

     if (is_dir($path . '/' . $result)) { 
      echo "<a href='imgs.php?folderName=$result'>$result</a> "; 

     } 
     if($i!=count($results)-1) echo '|'; //to avoid showing | in the last element 
    } 
?> 

,這裏是該掃描特定FOL的圖像PHP頁面listImages DER:

<?php 
    if (isset($_GET['folderName'])) $folder=$_GET['folderName']; 
    $path = 'uploads/'.$folder.'/' ; 
    $images = glob($path . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); 
    foreach ($images as $image) { 
     echo "<img src='$image' />"; 
    } 
?> 
+0

這工作絕對完美!非常感謝你。在回聲的圖像部分,如果我想包含一個鏈接到相同的圖像,我會把? –

+0

是的,就像你說的一樣 –

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>'; 
     } 
    } 
} 
0

創建圖像與圖像名稱子目錄名稱,並將其保存在數據庫

例如:

子目錄名稱:例題

形象的名字:image.jpg的

以db的形式存儲圖像名稱爲「example2/image.jpg」

1

由於看起來你對globs有點熟悉,下面是一個使用「glob」函數的例子。你可以看到你在找什麼在這裏一個基本工作示例: http://newwebinnovations.com/glob-images/

這裏是我如何的例子設置:

有兩個PHP文件,一個是index.php文件,另一個是列表images.php。

還有一個圖像文件夾兩個子文件夾,裏面有圖像。

的index.php是查找在圖片文件夾中的文件夾,並把它們與鏈接列表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頁面。

這裏是清單-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>'; 

這裏創建的鏈接會連你的個人圖像。