cioa a tutti!
Non riesco a capire da cosa dipenda questo errore, penso sia un problema di memoria o addirittura di cpu (intesi come risorse...). Premetto che uso Easyphp 1.8 quindi con phph 4.3
Devo indicizzare delle cartelle e sottocartelle, il tutto memorizzato su file di testo.Lo script crea tre array, con centinaia di elementi.. nello script c'è sicuramente un errore,ma lo vedo per una frazione di secondo, perchè poi mozilla mi fa vedere la pagina di errore...ecco il codice:
qualòcuno sa dirmi da cosa dipenda? ed eventuali impostazioni?? grazie milleCodice PHP:<?php
function list_directory($dir)
{
$file_list = '';
$stack[] = $dir;
while ($stack)
{
$current_dir = array_pop($stack);
if ($dh = opendir($current_dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file !== '.' AND $file !== '..')
{
$current_file = "{$current_dir}/{$file}";
if (is_file($current_file))
{
$file_list[] = "{$current_dir}/{$file}";
}
elseif (is_dir($current_file))
{
$stack[] = $current_file;
$dirs[]=$current_file;
}
}
}
}
}
return $dirs;
}
function list_files($dir)
{
$file_list = '';
$stack[] = $dir;
while ($stack)
{
$current_dir = array_pop($stack);
if ($dh = opendir($current_dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file !== '.' AND $file !== '..')
{
$current_file = "{$current_dir}/{$file}";
if (is_file($current_file))
{
$file_list[] = "{$current_dir}/{$file}";
}
elseif (is_dir($current_file))
{
$stack[] = $current_file;
$dirs[]=$current_file;
}
}
}
}
}
return $file_list;
}
$list_dir=list_directory("archivio/Templates/");
$list_files=list_files("archivio/Templates/");
$gruppo=array();
$sottogruppo=array();
$ID=array();
foreach ($list_dir as $key=>$cartella)
{
$blocco=explode("/",$cartella);
if ($key>0 && $blocco[0]!= $gruppo[($key-1)])
{
$ID[]=codice(rand(1000,10000));
$gruppo[$key]=$blocco[0];
}
if(count($blocco)>=2)
$sottogruppo[$blocco[0]]=$blocco[1];
}
function codice($codice)
{
global $ID;
if (in_array($codice,$ID))
codice ($codice);
else
return $codice;
}
$line="";
$indice=fopen('archivio.dwd','w');
foreach ($ID as $key=>$codice);
{
$line.=$ID[$key]."|".$gruppo[$key];
foreach ($sottogruppo as $sottokey=>$value)
{
if ($sottokey==$gruppo[$key])
{
$line.="|".$sottogruppo[$sottokey];
}
}
$line.="\n";
}
fwrite($archivio,$line);
fclose ($archivio);
echo "<pre>";
print_r($gruppo);
print_r($sottogruppo);
echo "</pre>";
?>![]()


Rispondi quotando