otto
2007-12-08 19:17:59 UTC
Bonjour
J'ai un problème avec le script simplifié ci-dessous!
Quand je démarre ce script pour la première fois env. 17'000 nom de fichiers sont lu depuis un répertoire (/camera25) en moin de 5 sec.
Quand je click sur le bouton (2ème depuis la gauche) ou le bouton reload du browser pour relire ce même répertoire cela va au timeout du provider soit plus de
2min!
Même problème avec les autres icones pour lire les autres répertoires (certain on moins de 2 fichiers)
Pour quel raison lorsque je charge ce script pour la première fois cela prend moins de 5 secondes, puis lorsque je rappelle ce script en mode SELF cela ne
fonctionne plus?
Y-a-t'il un cache à vider ou de variables à effacer ?
Voici un lien temporaire pour démontrer le problème : http://www.schlierholz.ch/camera/indexl.php
Le script:
<?php
session_start();
// Action on the button to select directory's
if (isset($_GET['c24_x'])) {
# Répertoire des images de la caméra
$pict_path = "camera24/";
}
elseif (isset($_GET['c25_x'])) {
$pict_path = "camera25/";
}
elseif (isset($_GET['c26_x'])) {
$pict_path = "camera26/";
}
elseif (isset($_GET['c27_x'])) {
$pict_path = "camera27/";
}
else
{
$pict_path = "camera25/";
}
echo $pict_path."<br>";
?>
<!-- Form to select directory's -->
<body>
<form action="<?PHP echo $_SERVER['PHP_SELF'] ?>" method="GET">
<p>
<input type="image" src="images/icon_camera.gif" name="c24">
<input type="image" src="images/icon_camera.gif" name="c25">
<input type="image" src="images/icon_camera.gif" name="c26">
<input type="image" src="images/icon_camera.gif" name="c27">
</p>
</form>
<form method="POST" action="--WEBBOT-SELF--">
<p>
<?php
$start = time();
$ordner = opendir($pict_path);
$i=0;
while ( $rfile = readdir($ordner) )
{
// only files without . and ..
if ($rfile != '.' && $rfile != '..' && substr($rfile,5,1) == '@')
{
// save filename to array
$files[$i]=$rfile;
$i++;
}
}
closedir($ordner);
// Sort array by name
sort($files);
// Save Session
$_SESSION['files'] = $files;
echo "Pictures : ".$i."<br>";
$end = time();
echo $end - $start."<br>";
$start = time();
$fp = 0;
$pos = 2;
$nodem = 0;
while ($fp < count($files))
{
$annee = substr($files[$fp],6,4);
$mois = substr($files[$fp],10,2);
if ($mois <> $rmois) {
echo"<img border='0' src='images/icon_mois.gif' width='16' height='14'>";
echo"<a target='c_gauche' href='dayshow.php?filtre=$annee$mois'> $annee$mois</a><br>";
// $nodem = $pos;
$rmois = $mois;
}
$fp++;
}
$end = time();
echo "Pictures : ".$fp."<br>";
echo $end - $start."<br>";
?>
</p>
</form>
</body>
</html>
J'ai un problème avec le script simplifié ci-dessous!
Quand je démarre ce script pour la première fois env. 17'000 nom de fichiers sont lu depuis un répertoire (/camera25) en moin de 5 sec.
Quand je click sur le bouton (2ème depuis la gauche) ou le bouton reload du browser pour relire ce même répertoire cela va au timeout du provider soit plus de
2min!
Même problème avec les autres icones pour lire les autres répertoires (certain on moins de 2 fichiers)
Pour quel raison lorsque je charge ce script pour la première fois cela prend moins de 5 secondes, puis lorsque je rappelle ce script en mode SELF cela ne
fonctionne plus?
Y-a-t'il un cache à vider ou de variables à effacer ?
Voici un lien temporaire pour démontrer le problème : http://www.schlierholz.ch/camera/indexl.php
Le script:
<?php
session_start();
// Action on the button to select directory's
if (isset($_GET['c24_x'])) {
# Répertoire des images de la caméra
$pict_path = "camera24/";
}
elseif (isset($_GET['c25_x'])) {
$pict_path = "camera25/";
}
elseif (isset($_GET['c26_x'])) {
$pict_path = "camera26/";
}
elseif (isset($_GET['c27_x'])) {
$pict_path = "camera27/";
}
else
{
$pict_path = "camera25/";
}
echo $pict_path."<br>";
?>
<!-- Form to select directory's -->
<body>
<form action="<?PHP echo $_SERVER['PHP_SELF'] ?>" method="GET">
<p>
<input type="image" src="images/icon_camera.gif" name="c24">
<input type="image" src="images/icon_camera.gif" name="c25">
<input type="image" src="images/icon_camera.gif" name="c26">
<input type="image" src="images/icon_camera.gif" name="c27">
</p>
</form>
<form method="POST" action="--WEBBOT-SELF--">
<p>
<?php
$start = time();
$ordner = opendir($pict_path);
$i=0;
while ( $rfile = readdir($ordner) )
{
// only files without . and ..
if ($rfile != '.' && $rfile != '..' && substr($rfile,5,1) == '@')
{
// save filename to array
$files[$i]=$rfile;
$i++;
}
}
closedir($ordner);
// Sort array by name
sort($files);
// Save Session
$_SESSION['files'] = $files;
echo "Pictures : ".$i."<br>";
$end = time();
echo $end - $start."<br>";
$start = time();
$fp = 0;
$pos = 2;
$nodem = 0;
while ($fp < count($files))
{
$annee = substr($files[$fp],6,4);
$mois = substr($files[$fp],10,2);
if ($mois <> $rmois) {
echo"<img border='0' src='images/icon_mois.gif' width='16' height='14'>";
echo"<a target='c_gauche' href='dayshow.php?filtre=$annee$mois'> $annee$mois</a><br>";
// $nodem = $pos;
$rmois = $mois;
}
$fp++;
}
$end = time();
echo "Pictures : ".$fp."<br>";
echo $end - $start."<br>";
?>
</p>
</form>
</body>
</html>