[PHP] filemtime en filectime returnen 0

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een scriptje om bestanden in een directory op volgorde van datum te sorteren. Bij de meeste bestanden werkt het gewoon, maar in sommige directories krijg ik 0 bij zo goed als alle JPG's, met filemtime en filectime.

Het script draait op Apache/1.3.31 (Unix) mod_perl/1.28 PHP/4.4.0
Ik upload de bestanden met LeechFTP, en daarin kan ik wel de data van bestanden zien.

Weet iemand wat er fout gaat / is bij de bestanden, of gebruik ik een verkeerde functie?
Het staat namelijk een beetje raar, 1970, toen had ik nog geen digitale camera ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Gokje: je Apache user heeft onvoldoende rechten op de directories of de bestanden.

Acties:
  • 0 Henk 'm!

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-08 20:35
Wat Cheatah al zegt. En nadat je de rechten goed hebt gezet, moet je misschien even clearstatcache() aanroepen, omdat de opgevraagde gegevens door filemtime en filectime gecached worden.

If I can't fix it, it ain't broken.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het rare is dat bij een heleboel andere bestanden het wel werkt, op de zelfde site met het zelfde scriptje, zelfs het zelfde PHP bestand. Maar ik zal eens kijken naar the cache.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bij sommige bestanden geeft hij het wel, het rare is alle bestanden zijn -rw-r--r--

[ Voor 63% gewijzigd door Verwijderd op 27-04-2008 17:46 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De bron voor de geintresseerden.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
if (!isset($_GET['d'])) { $dir ="."; } else { $dir = $_GET['d']; } 


function LoadFiles($dir){
    $Files = array();
    $It = dir($dir);
    
    if (!isset($It)) die('Cannot list files for ' . $dir);

    while ($Filename = $It->read()){
        if ($Filename == '.' || $Filename == '..') continue;
        $LastModified = filemtime($Filename);
        $Files[] = array($Filename, $LastModified);
    }
    $It->close();
    return $Files;
}


function DateCmp($a, $b){return ($a[1] < $b[1]) ? -1 : 1;}
function SortByDate(&$Files){usort($Files, 'DateCmp');}

$Files = LoadFiles($dir);
SortByDate($Files);
foreach ($Files as $key)
{
   if ($key[0] != "." && $key[0] != ".." && strtolower(substr($key[0], -3)) == "jpg") {
            $size = getimagesize ($dir.'/'.$key[0]);
            $w=$size[0]+20;  
        $h=$size[1]+30;  

            $html.=("img('$dir/$key[0]',$w,$h);");
            $debug.=$key[0]."      ".$key[1]."<br>";    
    }
}
?>

<html>
<head><title><?php echo $dir;?></title>
<style>
body {
    BACKGROUND-color: #F5F4F4;
    COLOR: #6698D0;
    FONT-FAMILY: Trebuchet MS, Tahoma;
    FONT-SIZE: 12pt;
    }
</style></head>
<body background="rechts.jpg">

   <script language="javascript">
   function img(file,w,h){
    document.writeln("<a href='javascript:viod(false);' onclick=\"window.open('"+file+"','','toolbar=0,location=0,status=0,menubar=0,width="+w+",height="+h+"');\"><img src='thumbnail.inc.php?file="+file+"' border=0></a>");
   }
<?php echo $html ?>
  </script>
<?php echo $debug ?>
</body>
</HTML>
Pagina: 1