2014-10-09 46 views
0

我用下面的腳本讀取所有圖像關閉指定的文件夾:池圖像 - 只顯示27和交換

$path= './images/referenzen/*'; 
$files = explode("\n", trim(`find -L $path`)); 

shuffle($files); 

foreach ($files as $item) { 
if (preg_match('/\.JPG$/', $item)) { 
$pfad = $item; 
$urlarray=explode("/",$pfad); 
$end=$urlarray[count($urlarray)-2]; 

echo '<div class="element-item '.$end.'"><img width="80" src="'.$item.'" /></div>'; 
} 
} 

通過添加這種背後的「洗牌」指令

$files = array_slice($files, 0, 27); 

我有時會得到27個文件輸出,但有時也只有26,25或24?!這有所不同,但我不知道爲什麼?

另外,我想將其餘文件保存在「池」中,並隨機交換在池中由其中一個文件顯示在siteload上的27個圖像中的一個。

因此,讓我們說每20秒一張隨機挑選的起始圖像的圖像應該由池中的一張圖像交換。

我不知道從哪裏開始atm。如果需要,可以實現Javascript。任何人都知道如何做到這一點?

+0

'shuffle'函數的定義在哪裏? – hindmost 2014-10-09 16:02:40

+0

Thx最後評論! 「洗牌」似乎是一個「標準」的PHP功能,我沒有別的地方隨機添加洗牌。 – 2014-10-09 16:15:15

回答

1

你得到的圖像少於27張,因爲你在製作27張圖片後(也許其中一些不是JPG)在得到它們的時候檢查它們是否爲JPG)並在它們爲27時中斷它們。 也使用

"/\.jpg\$/i" 

檢查文件擴展名。

+0

啊是的,這是真的......在我添加** preg_match之前**我有一些在數組中實現的子文件夾,所以通過使用** preg_match **我沒有擺脫那些文件夾,現在只有圖像被執行。 該代碼是從一個示例從計算器,它有這樣一行:'$ path ='./images/referenzen/*。jpg';'我想我可以通過擴展來過濾,但是這不起作用。 – 2014-10-09 16:45:47