Ignore:
Timestamp:
Jul 7, 2009, 10:27:37 PM (15 years ago)
Author:
vdigital
Message:

Change: getid3 upgraded to -> 1.7.9

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/charlies_content/getid3/getid3/extension.cache.mysql.php

    r3318 r3544  
    11<?php
    2 // +----------------------------------------------------------------------+
    3 // | PHP version 5                                                        |
    4 // +----------------------------------------------------------------------+
    5 // | Copyright (c) 2002-2006 James Heinrich, Allan Hansen                 |
    6 // +----------------------------------------------------------------------+
    7 // | This source file is subject to version 2 of the GPL license,         |
    8 // | that is bundled with this package in the file license.txt and is     |
    9 // | available through the world-wide-web at the following url:           |
    10 // | http://www.gnu.org/copyleft/gpl.html                                 |
    11 // +----------------------------------------------------------------------+
    12 // | getID3() - http://getid3.sourceforge.net or http://www.getid3.org    |
    13 // +----------------------------------------------------------------------+
    14 // | Authors: James Heinrich <infoØgetid3*org>                            |
    15 // |          Allan Hansen <ahØartemis*dk>                                |
    16 // +----------------------------------------------------------------------+
    17 // | extension.cache.mysql.php                                            |
    18 // | MySQL Cache Extension.                                               |
    19 // | dependencies: getid3.                                                |
    20 // +----------------------------------------------------------------------+
    21 //
    22 // $Id$
     2/////////////////////////////////////////////////////////////////
     3/// getID3() by James Heinrich <info@getid3.org>               //
     4//  available at http://getid3.sourceforge.net                 //
     5//            or http://www.getid3.org                         //
     6/////////////////////////////////////////////////////////////////
     7//                                                             //
     8// extension.cache.mysql.php - part of getID3()                //
     9// Please see readme.txt for more information                  //
     10//                                                            ///
     11/////////////////////////////////////////////////////////////////
     12//                                                             //
     13// This extension written by Allan Hansen <ahØartemis*dk>      //
     14//                                                            ///
     15/////////////////////////////////////////////////////////////////
    2316
    2417
     
    3225*
    3326*       require_once 'getid3/getid3.php';
    34 *       $getid3 = new getid3;
    35 *       $getid3->encoding = 'UTF-8';
    36 *       try {
    37 *           $info1 = $getid3->Analyse('file1.flac');
    38 *           $info2 = $getid3->Analyse('file2.wv');
    39 *           ....
     27*       $getID3 = new getID3;
     28*       $getID3->encoding = 'UTF-8';
     29*       $info1 = $getID3->analyze('file1.flac');
     30*       $info2 = $getID3->analyze('file2.wv');
    4031*
    4132*    getID3_cached usage:
     
    4334*       require_once 'getid3/getid3.php';
    4435*       require_once 'getid3/getid3/extension.cache.mysql.php';
    45 *       $getid3 = new getid3_cached_mysql('localhost', 'database', 'username', 'password');
    46 *       $getid3->encoding = 'UTF-8';
    47 *       try {
    48 *           $info1 = $getid3->analyse('file1.flac');
    49 *           $info2 = $getid3->analyse('file2.wv');
    50 *           ...
     36*       $getID3 = new getID3_cached_mysql('localhost', 'database',
     37*                                         'username', 'password');
     38*       $getID3->encoding = 'UTF-8';
     39*       $info1 = $getID3->analyze('file1.flac');
     40*       $info2 = $getID3->analyze('file2.wv');
    5141*
    5242*
     
    8070
    8171
    82 class getid3_cached_mysql extends getID3
     72class getID3_cached_mysql extends getID3
    8373{
    8474
    85     private $cursor;
    86     private $connection;
     75        // private vars
     76        var $cursor;
     77        var $connection;
    8778
    8879
    89     public function __construct($host, $database, $username, $password) {
     80        // public: constructor - see top of this file for cache type and cache_options
     81        function getID3_cached_mysql($host, $database, $username, $password) {
    9082
    91         // Check for mysql support
    92         if (!function_exists('mysql_pconnect')) {
    93             throw new getid3_exception('PHP not compiled with mysql support.');
    94         }
     83                // Check for mysql support
     84                if (!function_exists('mysql_pconnect')) {
     85                        die('PHP not compiled with mysql support.');
     86                }
    9587
    96         // Connect to database
    97         $this->connection = @mysql_pconnect($host, $username, $password);
    98         if (!$this->connection) {
    99             throw new getid3_exception('mysql_pconnect() failed - check permissions and spelling.');
    100         }
     88                // Connect to database
     89                $this->connection = mysql_pconnect($host, $username, $password);
     90                if (!$this->connection) {
     91                        die('mysql_pconnect() failed - check permissions and spelling.');
     92                }
    10193
    102         // Select database
    103         if (!@mysql_select_db($database, $this->connection)) {
    104             throw new getid3_exception('Cannot use database '.$database);
    105         }
     94                // Select database
     95                if (!mysql_select_db($database, $this->connection)) {
     96                        die('Cannot use database '.$database);
     97                }
    10698
    107         // Create cache table if not exists
    108         $this->create_table();
     99                // Create cache table if not exists
     100                $this->create_table();
    109101
    110         // Check version number and clear cache if changed
    111         $this->cursor = mysql_query("SELECT `value` FROM `getid3_cache` WHERE (`filename` = '".getid3::VERSION."') AND (`filesize` = '-1') AND (`filetime` = '-1') AND (`analyzetime` = '-1')", $this->connection);
    112         list($version) = @mysql_fetch_array($this->cursor);
    113         if ($version != getid3::VERSION) {
    114             $this->clear_cache();
    115         }
     102                // Check version number and clear cache if changed
     103                $this->cursor = mysql_query("SELECT `value` FROM `getid3_cache` WHERE (`filename` = '".GETID3_VERSION."') AND (`filesize` = '-1') AND (`filetime` = '-1') AND (`analyzetime` = '-1')", $this->connection);
     104                list($version) = @mysql_fetch_array($this->cursor);
     105                if ($version != GETID3_VERSION) {
     106                        $this->clear_cache();
     107                }
    116108
    117         parent::__construct();
    118     }
     109                parent::getID3();
     110        }
    119111
    120112
    121113
    122     public function clear_cache() {
     114        // public: clear cache
     115        function clear_cache() {
    123116
    124         $this->cursor = mysql_query("DELETE FROM `getid3_cache`", $this->connection);
    125         $this->cursor = mysql_query("INSERT INTO `getid3_cache` VALUES ('".getid3::VERSION."', -1, -1, -1, '".getid3::VERSION."')", $this->connection);
    126     }
     117                $this->cursor = mysql_query("DELETE FROM `getid3_cache`", $this->connection);
     118                $this->cursor = mysql_query("INSERT INTO `getid3_cache` VALUES ('".GETID3_VERSION."', -1, -1, -1, '".GETID3_VERSION."')", $this->connection);
     119        }
    127120
    128121
    129122
    130     public function Analyze($filename) {
     123        // public: analyze file
     124        function analyze($filename) {
    131125
    132         if (file_exists($filename)) {
     126                if (file_exists($filename)) {
    133127
    134             // Short-hands
    135             $filetime = filemtime($filename);
    136             $filesize = filesize($filename);
    137             $filenam2 = mysql_escape_string($filename);
     128                        // Short-hands
     129                        $filetime = filemtime($filename);
     130                        $filesize = filesize($filename);
     131                        $filenam2 = mysql_escape_string($filename);
    138132
    139             // Loopup file
    140             $this->cursor = mysql_query("SELECT `value` FROM `getid3_cache` WHERE (`filename`='".$filenam2."') AND (`filesize`='".$filesize."') AND (`filetime`='".$filetime."')", $this->connection);
    141             list($result) = @mysql_fetch_array($this->cursor);
     133                        // Loopup file
     134                        $this->cursor = mysql_query("SELECT `value` FROM `getid3_cache` WHERE (`filename`='".$filenam2."') AND (`filesize`='".$filesize."') AND (`filetime`='".$filetime."')", $this->connection);
     135                        list($result) = @mysql_fetch_array($this->cursor);
    142136
    143             // Hit
    144             if ($result) {
    145                 return unserialize($result);
    146             }
    147         }
     137                        // Hit
     138                        if ($result) {
     139                                return unserialize($result);
     140                        }
     141                }
    148142
    149         // Miss
    150         $result = parent::Analyze($filename);
     143                // Miss
     144                $result = parent::analyze($filename);
    151145
    152         // Save result
    153         if (file_exists($filename)) {
    154             $res2 = mysql_escape_string(serialize($result));
    155             $this->cursor = mysql_query("INSERT INTO `getid3_cache` (`filename`, `filesize`, `filetime`, `analyzetime`, `value`) VALUES ('".$filenam2."', '".$filesize."', '".$filetime."', '".time()."', '".$res2."')", $this->connection);
    156         }
    157         return $result;
    158     }
     146                // Save result
     147                if (file_exists($filename)) {
     148                        $res2 = mysql_escape_string(serialize($result));
     149                        $this->cursor = mysql_query("INSERT INTO `getid3_cache` (`filename`, `filesize`, `filetime`, `analyzetime`, `value`) VALUES ('".$filenam2."', '".$filesize."', '".$filetime."', '".time()."', '".$res2."')", $this->connection);
     150                }
     151                return $result;
     152        }
    159153
    160154
    161155
    162     // (re)create sql table
    163     private function create_table($drop = false) {
     156        // private: (re)create sql table
     157        function create_table($drop = false) {
    164158
    165         $this->cursor = mysql_query("CREATE TABLE IF NOT EXISTS `getid3_cache` (
    166             `filename` VARCHAR(255) NOT NULL DEFAULT '',
    167             `filesize` INT(11) NOT NULL DEFAULT '0',
    168             `filetime` INT(11) NOT NULL DEFAULT '0',
    169             `analyzetime` INT(11) NOT NULL DEFAULT '0',
    170             `value` TEXT NOT NULL,
    171             PRIMARY KEY (`filename`,`filesize`,`filetime`)) TYPE=MyISAM", $this->connection);
    172         echo mysql_error($this->connection);
    173     }
     159                $this->cursor = mysql_query("CREATE TABLE IF NOT EXISTS `getid3_cache` (
     160                        `filename` VARCHAR(255) NOT NULL DEFAULT '',
     161                        `filesize` INT(11) NOT NULL DEFAULT '0',
     162                        `filetime` INT(11) NOT NULL DEFAULT '0',
     163                        `analyzetime` INT(11) NOT NULL DEFAULT '0',
     164                        `value` TEXT NOT NULL,
     165                        PRIMARY KEY (`filename`,`filesize`,`filetime`)) TYPE=MyISAM", $this->connection);
     166                echo mysql_error($this->connection);
     167        }
    174168}
    175169
Note: See TracChangeset for help on using the changeset viewer.