Hallo,

met dit stukje script:
<?
$lastslash = strrpos($HTTP_SERVER_VARS[SCRIPT_FILENAME],"/");
$root = substr($HTTP_SERVER_VARS[SCRIPT_FILENAME],0,$lastslash+1);





$fp = popen("$root/system/./jhead -se '$file' 2>&1", "r");
while (!feof($fp)) {
$buf .= fread($fp, 1024);
}



echo $buf;

if(!strstr($buf,"denied"))
{
$tmp = explode("\n",$buf);
for($i = 0; $i <= count($tmp); $i++)
{
if($tmp[$i] != "")
{
$tmp2 = explode(": ",$tmp[$i]);
$info[$i][key] = trim($tmp2[0]);
$info[$i][val] = trim($tmp2[1]);
}
}

echo "<table border=0 cellpadding=3 cellspacing=1 class=contenttable width=100%>\n\n";
echo "<tr><td height=20>&nbsp;</td></tr>\n";
echo "<tr class=row0><td colspan=2>Camera Instellingen</td></tr>\n";
for($i = 0; $i <= count($info); $i++)
{

if($info[$i][key] && $info[$i][val])
echo "<tr class=row1><td width=100>{$info[$i][key]}</td><td>{$info[$i][val]}</td></tr>\n";
elseif($info[$i][key] && !$info[$i][val])
echo "<tr class=row1><td colspan=2>{$info[$i][key]}</tr>\n";

}

?>

krijg ik deze error:

Fatal error: Maximum execution time of 10 seconds exceeded in /data/members/free/tripod/nl/j/o/h/johankrug/htdocs/fotos/index.php on line 372
en dat is deze lijn: while (!feof($fp)) {

wie kan mij helpen om te zorgen dat dit script het weer goed doet?? b.v.d. Johan
$fp = popen("$root/system/./jhead -se '$file' 2>&1", "r");
while (!feof($fp)) {
$buf .= fread($fp, 1024);
}

Moet dat niet fopen zijn, in plaats van popen?
neuh, popen is een bestaande funcite(www.php.net/popen) maar met fopen werkt het ook niet, die error zit echt op line 372 en in mijn script is dat deze lijn: while(!feof($fp)).. maar het gekke is, met deze funcie:
<?
Function ImgSize($file)
{
$fp = popen("./jhead '$file' 2>&1", "r");
while (!feof($fp)) {
$buf .= fread($fp, 1024);
}

//Resolution : 1536 x 2048
eregi("Resolution.* ([0-9]{1,}) x ([0-9]{1,})[^0-9]",$buf, $res);

$res[0] = trim(substr($res[0],12));

return $res;
}
?>
geeft ie geen error en daar zit dat while(!feof($fp)) ook in...

wie kan me helpen??
$fp = popen("$root/system/./jhead -se '$file' 2>&1", "r");
while (!feof($fp)) {
$buf .= fread($fp, 1024);
}

Het licht in ieder geval aan de inhoud van popen();
Denk dat dit niet klopt:

$root/system/./jhead -se '$file' 2>&1
Fatal error: Maximum execution time of 10 seconds exceeded in /data/members/free/tripod/nl/j/o/h/johankrug/htdocs/fotos/index.php on line 372

Nu ik die error zie..
Hij probeert 10 seconden om dat bestand te openen, maar dat lukt niet.
Kan je wel bij die bestanden komen?
En hebben ze chmod?
Nee het is wat anders:
Apache stopt de huige proces als hij langer dan 10 er over doet.

Er is dus gewoon ergens een oneindige loop

while (!feof($fp)) {
$buf .= fread($fp, 1024);
}

Dit klopt niet hee :)

Volgens mij is dit die oneindige loop

tja ik heb het uit een script, dus dat moet je tegen de maker zeggen hea(in dit geval Bas) maaruh.. ik kan deze loop dus gewoon niet gebruiken?? das jammâh.. iemand een andere oplossing misschien??
Nee het is wat anders:
Apache stopt de huige proces als hij langer dan 10 er over doet.

Er is dus gewoon ergens een oneindige loop

while (!feof($fp)) {
$buf .= fread($fp, 1024);
}

Dit klopt niet hee :)

Volgens mij is dit die oneindige loop

das geen oneindige loop hoor
!feof betekent zolang we nog niet aan het einde van het bestand zitten gaan we door
kom je aan het einde dan stopt ie wel :P
Die error is gewoon een typisch geval voor een "oneidige" loop.

Of het bestand is te groot.
daar heb je gelijk in ja, maar dat stukje code is gewoon goed

Reageren