2014-10-29 77 views
0

我已經有了這段PHP代碼,它將一個目錄下的圖像加載出來,並一次把所有的東西扔到頁面上。我想知道如何添加一個接一個地加載圖像的功能,而不是一次加載它們。使用PHP一個接一個地加載圖像。

$path = "images/page1/"; 

if (is_dir($path)){ 
    $handle = opendir($path); 
} 
else{ 
    echo 'No image directory'; 
} 

$directoryfiles = array(); 
while (($file = readdir($handle)) !== false) { 
    $newfile = str_replace(' ', '_', $file); 
    rename($path . $file, $path . $newfile); 
    $directoryfiles[] = $newfile; 
} 

echo '<table>'; 
foreach($directoryfiles as $directoryfile){ 
     if(strlen($directoryfile) > 3){ 
     echo '<tr><td> <img src="'.$path.$directoryfile.'"/>'; 
     echo '<br>'.$path.$directoryfile.'</td></tr>'; 
     } 
    } 
echo '</table>'; 

closedir($handle); 

謝謝。

+0

這段代碼只是一個簡單的程序化PHP腳本。它按順序處理所有文件。一個接一個地。我想你想要加載的圖像間隔,你需要使用JavaScript – 2014-10-29 14:08:54

+1

你不能用PHP做到這一點。您將不得不使用CSS動畫,JavaScript或兩者的組合。谷歌搜索「jQuery圖像循環」會給你很多非常好的例子,如何實現這個 – rjdown 2014-10-29 14:10:12

+0

你在談論一個圖像滑塊時,圖像一次顯示一個,不斷變化或你自己改變它們? – 2014-10-29 14:36:41

回答

-1

這可能會爲你工作:

echo '<table>'; 
$delay=250; 
foreach($directoryfiles as $directoryfile){ 
     if(strlen($directoryfile) > 3){ 
      echo '<tr><td data-delay='.$delay.'> <img src="'.$path.$directoryfile.'"/>'; 
      echo '<br>'.$path.$directoryfile.'</td></tr>'; 

      $delay+=250;  
     } 
    } 
echo '</table>'; 
+0

什麼是數據延遲?我認爲這是一個jQuery腳本的自定義屬性? – Reeno 2014-10-29 14:13:12

+0

根據其他問題,它是**工具提示**的Twitter Bootstrap自定義屬性。但它不是標準的HTML,你的例子不起作用。 – Reeno 2014-10-29 14:27:53

0

我認爲與其建立圖像的表,我會把第一個圖像,我會保存其他圖片INA JavaScript變量的URL。然後,當你想加載其他圖像(定時器,點擊事件,...)時,你只需要改變原始圖像的src參數。

0

看起來jQuery是辦法:

var dir = "images/page1/"; 
var fileextension = [".png", ".jpg"]; 
$.ajax({ 
//This will retrieve the contents of the folder if the folder is configured a 'browsable' 
url: dir, 
success: function (data) { 
    //Lsit all png file names in the page 
    $(data).find("a:contains(" + (fileextension[0]) + "), a:contains(" + (fileextension[1]) + ")").each(function() { 
     var filename = this.href.replace(window.location.host,"").replace("http:///", ""); 

      jQuery(document).ready(function() { 
      //hide a div after 3 seconds 
       setTimeout("$("body").append($("<img src=" + dir + filename + "></img>"));",3000); 
      }); 
     }); 
    } 
}); 

警告:該代碼尚未經過測試,但它應該給你一個如何解決你的問題的想法。

0

你可以用PHP做,如果你使用output functions

下面是一個例子,編號會被對方後可見一個:

for ($i = 1 ; $i <= 10 ; $i++) 
{ 
    echo $i."\n"; 
    flush(); 
    ob_flush(); 
    sleep(1); 
} 
+0

我想他希望在頁面加載後讓它們一個接一個顯示 – JammyDodger231 2014-10-29 15:25:11

相關問題