problemino php: perchè è così lento?
Inviato: mar 17 ott 2006, 19:19
ciao a tutti!
sono alle prime armi con php e stavo cercando di fare una pagina che passati i parametri 'date' e 'img' aprisse l'immagine richiesta con la possibilità di andare indietro e avanti fra le immagini della directory.
Questo è il codice
solo che quando passo il link "http://localhost/personal/photos/photos ... IC0004.JPG" per esempio sta lì tre minuti con la CPU al 100% e non fa nulla.
qual'è il problema? grazie mille
sono alle prime armi con php e stavo cercando di fare una pagina che passati i parametri 'date' e 'img' aprisse l'immagine richiesta con la possibilità di andare indietro e avanti fra le immagini della directory.
Questo è il codice
Codice: Seleziona tutto
<html>
<head>
<title>Prova foto</title>
<script type="text/javascript" src="../java_scripts/popup.js">
</head>
<body>
<?php
/****************************************/
/* Variabili */
/****************************************/
$dir_photos="../photos/";
$thumb_script_link="../thumb/thumb.php";
/****************************************/
/* Funzioni */
/****************************************/
//* restituisce true se il file non è un'immagine *
function fImage($file){
$ext=strtolower(substr($file,-3,3)); //ottiene l'estensione del file
switch ($ext) {
case "jpg": break;
case "peg": break;
case "bmp": break;
case "png": break;
case "gif": break;
case "iff": break;
case "tif": break;
default: return true; //se non è un'immagine da true
}
}
//* estrapolazione data *
function sData($dir) {
$year_n = substr($dir,0,4); //estrapolazione anno
$day_n = substr($dir,6,2); //estrapolazione numero giorno
if (substr($day_n,0,1) == 0){
$day_n=substr($day_n,1,1);
}
$month_n = substr($dir,4,2); //estrapolazione numero mese
switch ($month_n){ //conversione da numero mese a nome mese
case 1: $month="Gennaio"; break;
case 2: $month="Febbraio"; break;
case 3: $month="Marzo"; break;
case 4: $month="Aprile"; break;
case 5: $month="Maggio"; break;
case 6: $month="Giugno"; break;
case 7: $month="Luglio"; break;
case 8: $month="Agosto"; break;
case 9: $month="Settembre"; break;
case 10:$month="Ottobre"; break;
case 11:$month="Novembre"; break;
case 12:$month="Dicembre"; break;
}
return $day_n." ".$month." ".$year_n;
}
/****************************************/
/* Body */
/****************************************/
//* controllo se c'è già una richiesta di data *
if (empty($_GET['date'])) {
$handle=opendir($dir_photos);
while ($dir = readdir($handle)) {
if ((is_dir($dir)) && ($dir != ".") && ($dir != "..")) {
if (empty ($cache)) { $cache = $dir; }
//se no prendi la data ultima (appena si clicca escono le foto più recenti)
elseif ($cache < $dir) { $cache = $dir; }
//aggiungi all'array per la lista di fianco
$elenco_serate[]=sData($dir);
}
}
$dir=$cache."/";
closedir($handle);
} else { $dir = $_GET['date']."/"; } //se c'è già la richiesta di data
echo "date: ".$_GET['date']." img: ".$_GET['img']." dir: ".$dir;
//* echo della lista serate *
foreach ($elenco_serate as $serata){
echo "<div>".$serata."</div>";
}
//* controllo se è stata cliccata un'immagine *
if (!(empty($_GET['img']))){
echo "aaaaaa: ".$dir_photos.$dir;
while ($file = $dir_photos.$dir) {
if (($file != ".") && ($file != "..")) {
/*$counter++;
switch ($counter){
case 1:
$succ=$file;
break;
case 2:
$current=$succ;
$succ=$file;
break;
case 3:
$prev=$current;
$current=$succ;
$succ=$file;
$counter=0;
break;
}
echo $counter;
if ($current == $_GET['img']) {
echo "<table>\n";
echo "<tr>\n";
echo "<td>\n";
echo "</td>\n";
echo "<td>\n";
echo "</td>\n";
echo "<td>\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "<a href=\"photos.php?dir=\"".$dir."\"><p>torna indietro</p></a>";
}*/
echo "pippo";
}
}
} else {
//* scrittura html *
$handle = opendir($dir);
echo "handle: ".$handle;
while ($file = readdir($handle)) { //per ogni immagine della directory $dir
if (($file != ".") && ($file != "..")) {
if (!fImage($file)) { //controllo se il file è immagine
echo "<a href=\"";
echo "./".$dir.$file;
echo "\" onclick=\"PrevFoto('".$dir.$file."');return(false)\">";
echo "<img src=\"".$thumb_script_link."?img="."./".$dir_photos.$dir.$file."\">";
//aggiungerci height alt ecc
echo "</a>\n<br>\n";
}
}
}
}
?>
</body>
</html>
qual'è il problema? grazie mille