2015-04-27 189 views
1

這是我的PHP塊。按自然順序排列圖像?

<?php 

我知道這是數組被定義的地方。

$string =array(); 
$dir = opendir($filePaththumb); 
while ($file = readdir($dir)) { 
    if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file)) { 
    $string[] = $file; 
    } 
} 

我假設我應該在代碼繼續超越這一點之前使用natsort()。

echo "<b><font size='$font_size'>".$gallery_name."</font></b><br>"; 
$loop = "0"; 
while (sizeof($string) != 0){ 
    $img = array_pop($string); 

我可以在這裏使用natsort()嗎?

echo "<center><a href='$filePath$img' download='$filePath$img' target='$target_thumb'><img src='$filePaththumb$img' border='0' width='100%'/><BR><IMG src='img/download.png'></a><BR><BR><BR><BR></center>"; 
    $loop = $loop + 1; 
    if ($loop == $loop_end) { 
     echo "<br>"; 
     $loop = "0"; 
    } 
} 

?> 

如何按自然順序排列圖像?

+0

換句話說:你想從一個文件夾中抓取所有具有以下擴展名之一的圖像:'.jpg,.png或.gif',將它們排序然後顯示它們? – Rizier123

+0

這是正確的! –

+0

所以,這段代碼適用於你:http://pastebin.com/GRh3Aieq(只需調整'glob()'中的路徑,例如'your/path /*.*')? – Rizier123

回答

-1

創建好你的$ string []數組後,你現在可以對它進行排序。

它將排序到位即您不必將結果分配給另一個變量,natsort()函數將返回true或false(失敗)。

while ($file = readdir($dir)) { 
    if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file)) { 
     $string[] = $file; 
    } 
} 
//print_r($string); 
natsort($string); 
//print_r($string); 

// then display them in order; 
foreach ($string as $img){ 
    echo "<img ..."; 
    ... 
} 
+0

多數民衆贊成我所需要的,與您的幫助,使natsort()之間的連接;到natsort($ string);感謝您的貢獻! –

0

謝謝大家給你輸入!你的建議對我非常有幫助!

<?php 

$string =array(); 
$dir = opendir($filePaththumb); 
while ($file = readdir($dir)) { 
    if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file)) { 
    $string[] = $file; 

陣列已經充滿以.jpg/.gif注意/ .png文件後,我用

natsort($string);的$字符串數組中的圖像文件安排自然秩序

我還使用array_reverse($string);來排列圖像文件從最大自然順序值的文件名到順序自然順序值的順序。

} 
} 

echo "<b><font size='$font_size'>".$gallery_name."</font></b><br>"; 
$loop = "0"; 
while (sizeof($string) != 0){ 
    $img = array_pop($string);  
    echo "<center><a href='$filePath$img' download='$filePath$img' target='$target_thumb'><img src='$filePaththumb$img' border='0' width='100%'/><BR><IMG src='img/download.png'></a><BR><BR><BR><BR></center>"; 
    $loop = $loop + 1; 
    if ($loop == $loop_end) { 
     echo "<br>"; 
     $loop = "0"; 
    } 
} 

?> 

再次感謝大家!