Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
3 lars 1
#!/usr/bin/php
2
<?php
3
 
4
    /**
5
     * @package   Mediaran.de
6
     * @author    Lars Tiefland <tiefland@weban.de>
7
     * @copyright 2009 Webagentur Niewerth
8
     * @license   propietary
9
     * @version   $Rev: 402 $
10
     * @filesource
11
     *
12
     */
13
 
14
    /**
15
     *
16
     * @package   Mediaran.de
17
     * @author    Lars Tiefland <tiefland@weban.de>
18
     * @copyright 2009 Webagentur Niewerth
19
     */
20
 
21
    // SVN: $Id: clear_cache.php 402 2011-02-03 15:33:21Z tiefland $
22
 
23
    /*
24
    * übergebene Parameter auswerten
25
    */
26
 
27
    foreach ( $_SERVER["argv"] as $param_id => $param )
28
    {
29
        list( $param_name, $param_value ) = explode( "=", $param );
30
        switch ( strtolower( $param_name ) )
31
        {
32
            case "base":
33
                $base = filter_var( $param_value, FILTER_SANITIZE_STRING );
34
                break;
35
            case "site":
36
                // Abfrage limitieren um beim Entwickel Zeit zu sparen
37
                $site = filter_var( $param_value, FILTER_SANITIZE_STRING );
38
                break;
39
            case "shop":
40
                $shop = filter_var( $param_value, FILTER_SANITIZE_STRING );
41
                break;
42
        }
43
    }
44
 
45
    if ( !$site )
46
    {
47
        echo "Keine Site angegeben! ==> Kann Cache nicht löschen!\n";
48
        exit( 255 );
49
    }
50
    if ( !$shop )
51
    {
52
        echo "Kein Shop angegeben! ==> Kann Cache nicht löschen!\n";
53
        exit( 255 );
54
    }
55
    if ( !$base )
56
    {
57
        $base = "/var/www/vhosts/$shop";
58
    }
59
 
60
    if ( !file_exists( $base ) )
61
    {
62
        echo "Basisverzeichnis \"$base\" existiert nicht! ==> Kann Cache nicht löschen!\n";
63
        exit( 255 );
64
    }
65
 
66
    $cache_dir = $base . "/httpdocs/cache/";
67
 
68
    if ( !file_exists( $cache_dir ) )
69
    {
70
        echo "Cacheverzeichnis \"$cache_dir\" existiert nicht! ==> Kann Cache nicht löschen!\n";
71
        echo "Verwendet der Shop überhaupt einen Cache?\n";
72
        exit( 255 );
73
    }
74
 
75
    /**
76
     * Konstanten
77
     */
78
 
79
    /**
80
     * Definition für die INI-Datei
81
     */
82
 
83
    define( "__SITE__", $site );
84
    define( "__SHOP__", $shop );
85
    define( "__USE_MDB2__", true );
86
 
87
    require_once ( "module/functions.common.php" );
88
    require_once ( "PEAR.php" );
89
    require_once ( "File/Find.php" );
90
 
91
    PEAR::setErrorHandling( PEAR_ERROR_CALLBACK, 'errorHandler' );
92
 
93
    init_shop();
94
 
95
    $files = File_Find::glob( "/navigation_|subdir_[0-9]*\.html/i", $cache_dir,
96
        'perl' );
97
    if ( is_array( $files ) )
98
    {
99
        foreach ( $files as $file )
100
        {
101
            $mtime = filemtime( $cache_dir . "/" . $file );
102
            if ( strtotime( "1 day", $mtime ) < time() )
103
            {
104
                unlink( $cache_dir . "/" . $file );
105
            }
106
        }
107
    }
108
 
109
    $sql = "
110
        SELECT
111
            UNIX_TIMESTAMP(erstellt_am) AS mtime,
112
            father,
113
            id
114
        FROM
115
            directory
116
        WHERE
117
            Language='" . $GLOBALS["INI"]["language"] . "'
118
    ";
119
    $res = $GLOBALS["db"]->query( $sql );
120
    if ( !PEAR::isError( $res ) )
121
    {
122
        if ( $res->NumRows() )
123
        {
124
            $rows = $res->fetchAll();
125
            foreach ( $rows as $row )
126
            {
127
                $file = $cache_dir . "/navigation_" . $row["father"] .
128
                    ".html";
129
                if ( file_exists( $file ) )
130
                {
131
                    $mtime = filemtime( $file );
132
                    if ( $mtime < $row["mtime"] )
133
                    {
134
                        unlink( $file );
135
                    }
136
                }
137
                $file = $cache_dir . "/subdir_" . $row["father"] . ".html";
138
                if ( file_exists( $file ) )
139
                {
140
                    $mtime = filemtime( $file );
141
                    if ( $mtime < $row["mtime"] )
142
                    {
143
                        unlink( $file );
144
                    }
145
                }
146
            }
147
        }
148
    }
149
 
150
    function errorHandler( $error )
151
    {
152
        $message = $error->getUserInfo();
153
        if ( !empty( $error->backtrace[1]['file'] ) )
154
        {
155
            $message .= ' (' . $error->backtrace[1]['file'];
156
            if ( !empty( $error->backtrace[1]['line'] ) )
157
            {
158
                $message .= ' in Zeile ' . $error->backtrace[1]['line'];
159
            }
160
            $message .= ')';
161
        }
162
        mail_admin( $message );
163
        exit;
164
    }
165
 
166
    function mail_admin( $message )
167
    {
168
        $subject = "Fehler beim Löschen des Cache auf www." . __SHOP__;
169
        $from = "info@" . __SHOP__;
170
        mail( "tiefland@weban.de", $subject, $message, "From: $form" );
171
        mail( "niewerth@weban.de", $subject, $message, "From: $from" );
172
    }
173
?>