All pastes #89286 Raw Edit

Stuff

public text v1 · immutable
#89286 ·published 2006-07-16 01:58 UTC
rendered paste body
<?php
$days = 31;
$minimum_level = 30;
$data_folder = 'c:/otserv/ots/data/';

$time_to_delete = time( - ($days * 24 * 60 * 60));

if($handle_dir = opendir($data_folder . 'accounts'))
{
    $deleted_characters = 0;
    $deleted_accounts = 0;
    while(false !== ($file = readdir($handle_dir)))
    {
        if($file != "." && $file != "..")
        {
            if(fileatime($data_folder . 'accounts/' . $file) < $time_to_delete)
            {
                $char_too_low_lvl = 0;
                $characters_in_account = 0;
                $handle_file = fopen($data_folder . 'accounts/' . $file, 'r');
                $simple = fread($handle_file, filesize($data_folder . 'accounts/' . $file));
                fclose($handle_file);
                $p = xml_parser_create();
                xml_parse_into_struct($p, $simple, $vals_acc, $index);
                xml_parser_free($p);
                foreach($vals_acc as $check_for_characters)
                {
                    if($check_for_characters['tag'] == 'CHARACTER')
                    {
                        $handle_file = fopen($data_folder . 'players/' . $check_for_characters['attributes']['NAME'] . '.xml', 'r');
                        $simple = fread($handle_file, filesize($data_folder . 'players/' . $check_for_characters['attributes']['NAME'] . '.xml'));
                        fclose($handle_file);
                        $p = xml_parser_create();
                        xml_parse_into_struct($p, $simple, $vals_char, $index);
                        xml_parser_free($p);
                        if($vals_char[0]['attributes']['LEVEL'] < $minimum_level) $char_too_low_lvl++;
                        $characters_in_account++;
                    }
                }
                if($characters_in_account == $char_too_low_lvl)
                {
                    foreach($vals_acc as $delete_char)
                    {
                        if($delete_char['tag'] == 'CHARACTER')
                        {
                            if(unlink($data_folder . 'players/' . $delete_char['attributes']['NAME'] . '.xml'))
                            {
                                echo '<p>Deleted ' . $delete_char['attributes']['NAME'] . '.</p>';
                                $deleted_characters++;
                            }
                            else echo '<p>Failed to delete ' . $delete_char['attributes']['NAME'] . '</p>';
                        }
                    }
                    $acc_nr = explode('.txt', $file);
                    if(unlink($data_folder . 'accounts/' . $file))
                    {
                        echo '<p>Account ' . $acc_nr[0] . ' deleted.</p>';
                        $deleted_accounts++;
                    }
                    else echo '<p>Failed to delete account ' . $acc_nr[0] . '</p>';
                }
            }
        }
    }
}
?>
</pre>
<?php echo '<p>Deleted ' . $deleted_characters . ' characters in ' . $deleted_accounts . ' accounts.</p>';