/    Sign up×
Community /Pin to ProfileBookmark

30 maximum execution time!!!!

Good day to you all,
I have a problem of maximum execution time over an directory listing.

  • 1. Is there a way to do this faster ?

  • 2. Or is it a setting on my server ? isn’t the default 30 seconds.

  • 3. I’m working with a lot of files !

  • 4. Is there a better way of doing this?
  • Error :
    [I]Fatal error: Maximum execution time of 30 seconds exceeded in Photos_galleryupdate_menu.php on line 27[/I]

    Code :

    [code=php]

    <?php

    $directory = “Art/”;
    function dirList ($directory)
    {

    //create 2 arrays – one for folders and one for files
    $folders = array();
    $files = array();

    // create a handler for the directory
    $handler = opendir($directory);

    // keep going until all files in directory have been read
    while (false !== ($file = readdir($handler))) {

    // if $file isn’t this directory or its parent,
    // add it to the results array
    if ($file != ‘.’ && $file != ‘..’)

    // If file is directory, mark it in bold.
    if(is_dir($directory.$file)) {
    array_push($folders,$file);

    if (time() – filemtime($directory.$file) < 604800) {
    $folder_modified[] = “<span style=”color:#DB1212;”><li><div class=”folder”><img src=”plus_icon.gif” onclick=”Toggle(‘”.preg_replace(‘///’,’_’,$directory.””.$file).”‘); return false;” /><b>”.$file.”</b></div>”;
    } elseif (time() – filemtime($directory.$file) < 31556926) {
    $folder_modified[] = “<span style=”color:#003366;”><li><div class=”folder”><img src=”plus_icon.gif” onclick=”Toggle(‘”.preg_replace(‘///’,’_’,$directory.””.$file).”‘); return false;” /><b>”.$file.”</b></div>”;
    } else {$folder_modified[] = “<span style=”color:#000000;”><li><div class=”folder”><img src=”plus_icon.gif” onclick=”Toggle(‘”.preg_replace(‘///’,’_’,$directory.””.$file).”‘); return false;” /><b>”.$file.”</b></div>”;}

    // Else not styled
    }else{
    array_push($files,$file);
    $filenamecor = substr($file, 0, -4);
    if (time() – filemtime($directory.$file) < 604800) {
    $file_modified[] = ‘<span style=”color:#DB1212;”>’.$filenamecor.'<span>’;
    } elseif (time() – filemtime($directory.$file) < 31556926) {
    $file_modified[] = ‘<span style=”color:#003366;”>’.$filenamecor.'<span>’;
    } else {$file_modified[] = ‘<span style=”color:#000000;”>’.$filenamecor.'<span>’;}

    }
    }

    echo “<ul id=””.preg_replace(‘///’,’_’,substr($directory,0,strlen($directory)-1)).””>n”; //start a new unordered list for every iteration through dirList

    $dircor = $directory;
    // tidy up: close the handler
    closedir($handler);
    foreach($folders as $folder=>$file) {

    echo “<li><div class=”folder”>”.$folder_modified[$folder].”</div>”; //echo the folder name enclosed in a list item
    dirList($directory.$file.’/’); //loop through the contents of $folder
    echo “</li>n”; //close this list item after all files and folders in $folder have been looped through

    }

    foreach($files as $key=>$file) {

    echo “<li><a href=”index.html” onclick=”load(‘image_view.php?dir=”.$dircor.”&file=”.$file.”‘,’boxdisp’);return false;”>&nbsp;”.$file_modified[$key].”</a></li>n”; //echo the file name enclosed in a list item
    }

    echo “</ul>n”; //close the unordered list
    }

    $filename = ‘menu.html’;
    $somecontent = dirList($directory);

    // Let’s make sure the file exists and is writable first.
    if (is_writable($filename)) {

    // In our example we’re opening $filename in append mode.
    // The file pointer is at the bottom of the file hence
    // that’s where $somecontent will go when we fwrite() it.
    if (!$handle = fopen($filename, ‘a’)) {
    echo “Cannot open file ($filename)”;
    exit;
    }

    // Write $somecontent to our opened file.
    if (fwrite($handle, $somecontent) === FALSE) {
    echo “Cannot write to file ($filename)”;
    exit;
    }

    echo “Success, wrote ($somecontent) to file ($filename)”;

    fclose($handle);

    } else {
    echo “The file $filename is not writable”;
    }

    [/code]

    What I’m trying to do is list a directory recurcively and write the result in a html page.
    So it faster to load for user

    to get it content later from the photos gallery page the user will only see..

    to post a comment
    PHP

    1 Comments(s)

    Copy linkTweet thisAlerts:
    @SyCoMay 04.2009 — You're not returning the output of the function you're just echoing it. You could trap it in an output buffer and return that but why not just write it to a file in the function? If you just want to build an HTML file dynamically don't send such a massive amount of data to the browser.

    Honestly I think this much information should be manged by a database.
    ×

    Success!

    Help @Peuplarchie spread the word by sharing this article on Twitter...

    Tweet This
    Sign in
    Forgot password?
    Sign in with TwitchSign in with GithubCreate Account
    about: ({
    version: 0.1.9 BETA 5.20,
    whats_new: community page,
    up_next: more Davinci•003 tasks,
    coming_soon: events calendar,
    social: @webDeveloperHQ
    });

    legal: ({
    terms: of use,
    privacy: policy
    });
    changelog: (
    version: 0.1.9,
    notes: added community page

    version: 0.1.8,
    notes: added Davinci•003

    version: 0.1.7,
    notes: upvote answers to bounties

    version: 0.1.6,
    notes: article editor refresh
    )...
    recent_tips: (
    tipper: @AriseFacilitySolutions09,
    tipped: article
    amount: 1000 SATS,

    tipper: @Yussuf4331,
    tipped: article
    amount: 1000 SATS,

    tipper: @darkwebsites540,
    tipped: article
    amount: 10 SATS,
    )...