รูปไม่เรียงตามลำดับ เหมือนตอนที่รันที่เครื่องหลังจากอัพลง server
มีวิธีไหนที่แก้ได้บอกด้วยนะคะ ขอบคุณค่ะ
1. show_image.php
<?php
$dir = "upload/".$_GET['album']."/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($file <> 'Thumbs.db' and $file <> '.' and $file <> '..') {
echo "<a href=".$dir."/".$file." class=mainfont>".$file."</a>";
$fp = fopen($dir."/".$file, "r");
$fstat = fstat($fp);
$file_stat[] = $fstat['mtime']."|".$file;
fclose($fp);
}
}
}
closedir($dh);
}
//rsort($file_stat); // sort($file_stat);
?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Lai Brothers Corporation ++ Photo Gallery++</title>
<link rel="stylesheet" href="css/basic.css" type="text/css" />
<link rel="stylesheet" href="css/galleriffic.css" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.galleriffic.js"></script>
</head>
<body>
<p>
<?
foreach ($file_stat as $key => $file_detail) {
$file_detail = explode("|", $file_detail);
//echo "<a href=".$dir."/".$file_detail[1]." class=mainfont>".$file_detail[1]."</a> last modified: ".date("Y-M-d H:i:s.", $file_detail[0])."<br<strong></strong> />";
?>
<img src="<?=$dir?><?=$file_detail[1]?>" alt="Photo #<?=$i?>" width="90" height="60" />
<?=$i?>
</a>
<?
$i++;
}
?>
</ul>
</div>
</p>
<p> </p>
</body>
</html>]
2. show.php
<?php
$dir =$_GET['album']."/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($file <> 'Thumbs.db' and $file <> '.' and $file <> '..') {
//echo "<a href=".$dir."/".$file." class=mainfont>".$file."</a>";
$fp = fopen($dir."/".$file, "r");
$fstat = fstat($fp);
$file_stat[] = $fstat['mtime']."|".$file;
fclose($fp);
}
}
}
closedir($dh);
}
//rsort($file_stat); // sort($file_stat);
?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Lai Brothers Corporation ++ Photo Gallery++</title>
<link rel="stylesheet" href="css/basic.css" type="text/css" />
<link rel="stylesheet" href="css/galleriffic.css" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.galleriffic.js"></script>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>
<body>
<div id="page">
<div id="container">
<h2><?=$_GET['album']?></h2>
<!-- Start Advanced Gallery Html Containers -->
<div id="gallery" class="content">
<div id="controls" class="controls"></div>
<div id="loading" class="loader"></div>
<div id="slideshow" class="slideshow"></div>
</div>
<script type="text/javascript">
// We only want these styles applied when javascript is enabled
$('div.navigation').css({'width' : '100%', 'float' : 'left'});
$('div.content').css('display', 'block');
// Initially set opacity on thumbs and add
// additional styling for hover effect on thumbs
var onMouseOutOpacity = 0.67;
$('#thumbs ul.thumbs li').css('opacity', onMouseOutOpacity)
.hover(
function () {
$(this).not('.selected').fadeTo('fast', 1.0);
},
function () {
$(this).not('.selected').fadeTo('fast', onMouseOutOpacity);
}
);
$(document).ready(function() {
// Initialize Advanced Galleriffic Gallery
var galleryAdv = $('#gallery').galleriffic('#thumbs', {
delay: 2000,
numThumbs: 12,
preloadAhead: 10,
enableTopPager: true,
enableBottomPager: true,
imageContainerSel: '#slideshow',
controlsContainerSel: '#controls',
captionContainerSel: '#caption',
loadingContainerSel: '#loading',
renderSSControls: true,
renderNavControls: true,
playLinkText: 'Play Slideshow',
pauseLinkText: 'Pause Slideshow',
prevLinkText: '‹ Previous Photo',
nextLinkText: 'Next Photo ›',
nextPageLinkText: 'Next ›',
prevPageLinkText: '‹ Prev',
enableHistory: true,
autoStart: false,
onChange: function(prevIndex, nextIndex) {
$('#thumbs ul.thumbs').children()
.eq(prevIndex).fadeTo('fast', onMouseOutOpacity).end()
.eq(nextIndex).fadeTo('fast', 1.0);
},
onTransitionOut: function(callback) {
$('#caption').fadeOut('fast');
$('#slideshow').fadeOut('fast', callback);
},
onTransitionIn: function() {
$('#slideshow, #caption').fadeIn('fast');
},
onPageTransitionOut: function(callback) {
$('#thumbs ul.thumbs').fadeOut('fast', callback);
},
onPageTransitionIn: function() {
$('#thumbs ul.thumbs').fadeIn('fast');
}
});
});
</script>
<div id="thumbs" class="navigation">
<ul class="thumbs noscript">
<?
foreach ($file_stat as $key => $file_detail) {
$file_detail = explode("|", $file_detail);
//echo "<a href=".$dir."/".$file_detail[1]." class=mainfont>".$file_detail[1]."</a> last modified: ".date("Y-M-d H:i:s.", $file_detail[0])."<br />";
?>
<li><a class="thumb" href="<?=$dir?><?=$file_detail[1]?>" title="Photo #<?=$i?>"><img src="<?=$dir?><?=$file_detail[1]?>" alt="Photo #<?=$i?>" width="90" height="60" /></a></li>
<li></li>
<?
$i++;
}
?>
</ul>
</div>
<p> </p>
<p> </p>
<table width="835" border="0" align="center" cellspacing="0">
<tr>
<td>
<param name="movie" value="images/bannerloop.swf">
<param name="quality" value="high">
<embed src="images/bannerloop.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="800" height="72"></embed>
</object></noscript></td>
</tr>
<tr>
<td> </td>
</tr>
</table>
<!-- End Advanced Gallery Html Containers -->
<div style="clear: both;"></div>
</div>
</div>
<div id="footer">All rights reserved : Lai Brothers Coporation Co., Ltd. 2009 </div>
</body>
</html>Tag : - - - -
Date :
2009-12-28 11:31:55
By :
mostgirls
View :
1225
Reply :
5
ใช้ Order By ครับ
Date :
2009-12-28 23:42:05
By :
webmaster
ขอบคุณค่ะ เด่วลองดูนะคะ
Date :
2009-12-29 11:08:47
By :
mostgirls
หูย ใช้ php อ่านไฟล์จาก hdd ของ server เลยเหรอ
มันไม่เรียงตามตัวอักษรหรอกนะ เพราะมันจะเรียงจากตำแหน่งที่เขียนบน hdd ซึ่งสะเปะสะปะไปหมด (ลอง defag ดูตำแหน่งของ file ก็เปลี่ยน)
มีวิธีแก้ 2 วิธีคือ
1. ไม่ใช้ฐานข้อมูล ให้ list ไฟล์ทั้งหมดใน directory รอบนึงก่อน แล้วเก็บ list นั้นลง array แล้วเอา array ไป sort
2. ใช้ฐานข้อมูล ตอน upload ไฟล์ขึ้น server ให้เก็บชื่อไฟล์กับ path ของมันลงฐานข้อมูลด้วย เวลาเรียกดูไฟล์ก็ query จากฐานข้อมูล จะ sort จะ delete ก็ง่าย
Date :
2009-12-29 11:32:46
By :
tungman
คุณ tungman คือว่า ถ้าจะ list ไฟล์ทั้งหมดใน directory รอบนึงก่อน แล้วเก็บ list นั้นลง array แล้วเอา array ไป sort มันต้องทำไงอ่ะคะ ช่วยชี้แนะด้วยค่ะ ขอบคุณค่า ^^
Date :
2009-12-29 16:38:20
By :
mostgirls
ทำได้แล้วนะคะ เผื่อเป็นความรู้ให้กับคนอื่น
ใช้ rsort($file_stat); //จะเรียงจากมากไปน้อย (เรียงตามชื่อรูปนะคะ)
sort($file_stat); //จะเรียงจาก น้อยไปมาก
ขอบคุณทุกความเห็นที่ให้มานะคะ
Date :
2010-01-14 14:41:53
By :
mostgirls
Load balance : Server 00