Changeset 7991 for extensions/PHP_Optimisateur/index.php
- Timestamp:
- Dec 3, 2010, 11:50:00 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/PHP_Optimisateur/index.php
r7988 r7991 2 2 /***************************************\ 3 3 | PHP OPTIMISATEUR | 4 | Version 1. 0|4 | Version 1.1 | 5 5 \***************************************/ 6 6 … … 8 8 $TIME_START = microtime(true); 9 9 10 echo '<?xml version="1.0" encoding="utf-8"?> 11 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 12 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 13 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"> 14 <head> 15 <link rel="stylesheet" type="text/css" media="screen" href="files/style.css" /> 16 <title>PHP Optimisateur 1.0</title> 17 </head> 18 <body> 19 <div class="title">PHP Optimisateur 1.0</div>'; 20 21 include('config.php'); 10 include('files/header.php'); 22 11 include('files/functions.php'); 23 12 24 13 25 ### Erreurs fatales ### 26 if (!is_int($DIMhd) || !is_int($DIMnormal) || !is_int($DIMthumbnail) || !is_int($Qhd) || !is_int($Qnormal) || !is_int($Qthumbnail) || 27 !is_bool($silentORNOT) || !is_bool($DIRhighORNOT) || !is_bool($DIMhdORNOT) || !is_bool($renameORNOT) || !is_bool($indexORNOT) || !is_string($prefixe_mini)) { 28 die('<div class="error">Erreur fatale : Configuration incorrecte. <a href="index.php">Retour</a></div>'); 29 } 30 14 15 ### DEMARRAGE ### 16 // Fichier de configuration 17 if (!file_exists('config.xml')) { 18 die('<div class="error">Erreur fatale : Fichier de configuration introuvable. <a href="index.php">Retour</a></div>'); 19 } 20 21 // Configuration 22 $config = simplexml_load_file('config.xml'); 23 $config = XMLParse($config); 24 $config = array_settype($config); 25 extract($config); 26 27 // Afficher la configuration 28 if (!$silentORNOT) { 29 include('files/display_config.php'); 30 } 31 32 // Dossiers 33 if (!file_exists($DIRsource)) { 34 mkdir($DIRsource); 35 } 36 if (!file_exists($DIRsortie)) { 37 mkdir($DIRsortie); 38 } 31 39 if (is_dir_empty($DIRsource)) { 32 die('<div class="error">Erreur fatale : Dossier source vide. <a href="index.php">Retour</a></div>'); 33 } 34 40 die('<div class="error">Erreur fatale : Dossier source vide. <a href="index.php">Retour</a> <a href="setup.php">Configurer</a></div>'); 41 } 35 42 if ($silentORNOT) { 36 rrmdir($DIRsortie); 37 mkdir($DIRsortie); 43 rrmdir($DIRsortie); // Si mode silencieux 44 mkdir($DIRsortie); // vidage automatique du dossier de sortie 38 45 } else if (!is_dir_empty($DIRsortie)) { 39 die('<div class="error">Erreur fatale : Dossier de sortie non vide. <a href="index.php">Retour</a></div>'); 40 } 41 42 43 if (!$silentORNOT AND isset($_GET['Process'])) { 44 ### Supprimer les caractères spéciaux - dossiers & fichiers ### 45 function recursive_delete_special_car($dir) { 46 $dir = rtrim($dir, '/'); 47 $dh = opendir($dir); 48 49 while (($file = readdir($dh)) !== false ) { //boucle pour parcourir le repertoire 50 if ($file !== '.' && $file !== '..') { 51 $path = $dir.'/'.$file; 52 $new_path = $dir.'/'.delete_special_car($file); 53 rename($path, $new_path); 46 die('<div class="error">Erreur fatale : Dossier de sortie non vide. <a href="index.php">Retour</a> <a href="setup.php">Configurer</a></div>'); 47 } 48 49 50 51 ### EXECUTION ### 52 if (isset($_GET['Process'])) { 53 54 ### Supprimer les caractères spéciaux - dossiers & fichiers ### 55 if ($renameORNOT) { 56 function recursive_delete_special_car($dir) { 57 $dir = rtrim($dir, '/'); 58 $dh = opendir($dir); 54 59 55 if (is_dir($new_path)) { //si on tombe sur un sous-repertoire 56 recursive_delete_special_car($new_path); // appel recursif pour lire a l'interieur de ce sous-repertoire 60 while (($file = readdir($dh)) !== false ) { 61 if ($file !== '.' && $file !== '..') { 62 $path = $dir.'/'.$file; 63 $new_path = $dir.'/'.delete_special_car($file); 64 rename($path, $new_path); 65 66 if (is_dir($new_path)) { 67 recursive_delete_special_car($new_path); 68 } 69 } 57 70 } 58 } 59 } 60 closedir($dh); 61 } 62 63 recursive_delete_special_car($DIRsource); 64 65 66 67 ### Copyright ### 68 if ($copyONhd) { 69 $copyHD = '-text_font "'.$copyFONT.'" '.$DIMnormal*$copySIZE.' -text_color '.$copyCOLOR.' -text_flag '.$copyPOS.' -text_pos 0 0 -text "'.$copyright.'"'; 70 } else { 71 $copyHD = null; 72 } 73 if ($copyONnormal) { 74 $copyNormal = '-text_font "'.$copyFONT.'" '.$DIMnormal*$copySIZE.' -text_color '.$copyCOLOR.' -text_flag '.$copyPOS.' -text_pos 0 0 -text "'.$copyright.'"'; 75 } else { 76 $copyNormal = null; 77 } 78 79 80 81 ### Plugins avant execution ### 82 foreach ($PluginsBefore as $name => $config) { 83 if ($config['active']) { 84 include('plugins/'.$name.'.php'); 85 } 86 } 87 88 89 90 ### Processus principal ### 91 92 // Tableau avec les fichiers source 93 $FilesSource = array(); 94 recursive_readdir($DIRsource, 'FilesSource'); 95 // Tableau avec les fichiers de sortie 96 $FilesSortie = str_replace($DIRsource, $DIRsortie, $FilesSource); 97 98 for ($i=0; $i<count($FilesSource); $i++) { 99 // Découpe le nom de fichier : dossier/fichier 100 preg_match('#(.*)/(.*)$#', $FilesSortie[$i], $matches); 101 # matches[1] = dossier sortie 102 # matches[2] = fichier.ext 103 104 // Crée les sous-dossiers de sortie & 'pwg_high' & 'thumbnail' 105 if (!file_exists($matches[1].'/pwg_high') AND $DIRhighORNOT) { 106 mkdir($matches[1].'/pwg_high', 0777, true); 107 } 108 if (!file_exists($matches[1].'/thumbnail')) { 109 mkdir($matches[1].'/thumbnail', 0777, true); 110 } 111 112 // Plugins pendant l'execution 113 foreach ($PluginsProcess as $name => $config) { 71 closedir($dh); 72 } 73 74 recursive_delete_special_car($DIRsource); 75 } 76 77 78 ### Copyright ### 79 if ($copyONhd) { 80 $copyHD = '-text_font "'.$copyFONT.'" '.$DIMnormal*$copySIZE.' -text_color '.$copyCOLOR.' -text_flag '.$copyPOS.' -text_pos 0 0 -text "'.$copyright.'"'; 81 } else { 82 $copyHD = null; 83 } 84 if ($copyONnormal) { 85 $copyNormal = '-text_font "'.$copyFONT.'" '.$DIMnormal*$copySIZE.' -text_color '.$copyCOLOR.' -text_flag '.$copyPOS.' -text_pos 0 0 -text "'.$copyright.'"'; 86 } else { 87 $copyNormal = null; 88 } 89 90 91 ### Plugins avant execution ### 92 foreach ($PluginsBefore as $name => $config) { 114 93 if ($config['active']) { 115 94 include('plugins/'.$name.'.php'); 116 95 } 117 96 } 97 98 99 ### Processus principal ### 100 101 // Tableau avec les fichiers source 102 $FilesSource = array(); 103 recursive_readdir($DIRsource, 'FilesSource'); 104 // Tableau avec les fichiers de sortie 105 $FilesSortie = str_replace($DIRsource, $DIRsortie, $FilesSource); 106 107 for ($i=0; $i<count($FilesSource); $i++) { 108 // Découpe le nom de fichier : dossier/fichier 109 preg_match('#(.*)/(.*)$#', $FilesSortie[$i], $matches); 110 # matches[1] = dossier sortie 111 # matches[2] = fichier.ext 112 113 // Crée les sous-dossiers de sortie & 'pwg_high' & 'thumbnail' 114 if (!file_exists($matches[1].'/pwg_high') AND $DIRhighORNOT) { 115 mkdir($matches[1].'/pwg_high', 0777, true); 116 } 117 if (!file_exists($matches[1].'/thumbnail')) { 118 mkdir($matches[1].'/thumbnail', 0777, true); 119 } 120 121 // Plugins pendant l'execution 122 foreach ($PluginsProcess as $name => $config) { 123 if ($config['active']) { 124 include('plugins/'.$name.'.php'); 125 } 126 } 127 128 // Compresse les fichiers dans le dossier de sortie 129 if (!isset($BlockNormal)) { 130 exec('nconvert.exe -q '.$Qnormal.' -out jpeg -o "'.$matches[1].'/'.$matches[2].'" -dpi 72 -ratio -rtype lanczos -resize '.$DIMnormal.' '.$DIMnormal.' '.$copyNormal.' "'.$FilesSource[$i].'"'); 131 } 132 if (!isset($BlockThumbnail)) { 133 exec('nconvert.exe -q '.$Qthumbnail.' -out jpeg -o "'.$matches[1].'/thumbnail/'.$prefixe_mini.$matches[2].'" -dpi 72 -ratio -rtype lanczos -rflag decr -resize '.$DIMthumbnail.' '.$DIMthumbnail.' -rmeta -rexifthumb "'.$FilesSource[$i].'"'); 134 } 135 if ($DIRhighORNOT AND !isset($BlockHigh)) { 136 if ($DIMhdORNOT) { 137 exec('nconvert.exe -q '.$Qhd.' -out jpeg -o "'.$matches[1].'/pwg_high/'.$matches[2].'" -dpi '.$DPI.' -ratio -rtype lanczos -rflag decr -resize '.$DIMhd.' '.$DIMhd.' '.$copyHD.' "'.$FilesSource[$i].'"'); 138 } else { 139 copy($FilesSource[$i], $matches[1].'/pwg_high/'.$matches[2]); 140 } 141 } 142 143 // Réinitialise les bloqueurs 144 unset($BlockNormal); 145 unset($BlockThumbnail); 146 unset($BlockHigh); 147 148 } 149 150 if (!$silentORNOT) { 151 echo '<div class="files"> 152 <h2>Fichiers source</h2> 153 <ul>'; 154 foreach ($FilesSource as $value) { 155 echo '<li>'.$value.'</li>'; 156 } 157 echo '</ul> 158 <i>'.count($FilesSource).' fichiers</i> 159 </div>'; 160 } 161 162 unset($FilesSource); 163 unset($FilesSortie); 164 165 166 ### Supprime les dossiers vides et copie les fichiers index.php ### 167 // Tableau avec les dossiers de sortie 168 $DirsSortie = array(); 169 recursive_readdir($DIRsortie, 'DirsSortie', true); 170 171 foreach($DirsSortie as $dir) { 172 if (is_dir_empty($dir)) { 173 rmdir($dir); 174 } else if ($indexORNOT) { 175 copy('files/index.php', $dir.'/index.php'); 176 } 177 } 178 179 unset($DirsSortie); 180 181 182 ### Plugins après execution ### 183 foreach ($PluginsAfter as $name => $config) { 184 if ($config['active']) { 185 include('plugins/'.$name.'.php'); 186 } 187 } 188 189 190 echo '<div class="finish">Opération terminée : '.intval((microtime(true)-$TIME_START)) .' secondes. <a href="index.php">Retour</a> <a href="setup.php">Configurer</a></div>'; 191 118 192 119 // Compresse les fichiers dans le dossier de sortie120 if (!isset($BlockNormal)) {121 exec('nconvert.exe -q '.$Qnormal.' -out jpeg -o "'.$matches[1].'/'.$matches[2].'" -dpi 72 -ratio -rtype lanczos -resize '.$DIMnormal.' '.$DIMnormal.' '.$copyNormal.' "'.$FilesSource[$i].'"');122 }123 if (!isset($BlockThumbnail)) {124 exec('nconvert.exe -q '.$Qthumbnail.' -out jpeg -o "'.$matches[1].'/thumbnail/'.$prefixe_mini.$matches[2].'" -dpi 72 -ratio -rtype lanczos -rflag decr -resize '.$DIMthumbnail.' '.$DIMthumbnail.' -rmeta -rexifthumb "'.$FilesSource[$i].'"');125 }126 if ($DIRhighORNOT AND !isset($BlockHigh)) {127 if ($DIMhdORNOT) {128 exec('nconvert.exe -q '.$Qhd.' -out jpeg -o "'.$matches[1].'/pwg_high/'.$matches[2].'" -dpi '.$DPI.' -ratio -rtype lanczos -rflag decr -resize '.$DIMhd.' '.$DIMhd.' '.$copyHD.' "'.$FilesSource[$i].'"');129 } else {130 copy($FilesSource[$i], $matches[1].'/pwg_high/'.$matches[2]);131 }132 }133 193 134 // Réinitialise les bloqueurs135 unset($BlockNormal);136 unset($BlockThumbnail);137 unset($BlockHigh);138 139 }140 141 if (!$silentORNOT) {142 echo '<div class="files">143 <h2>Fichiers source</h2>144 <ul>';145 foreach ($FilesSource as $value) {146 echo '<li>'.$value.'</li>';147 }148 echo '</ul>149 <i>'.count($FilesSource).' fichiers</i>150 </div>';151 }152 153 unset($FilesSource);154 unset($FilesSortie);155 156 157 158 ### Supprime les dossiers vides et copie les fichiers index.php ###159 // Tableau avec les dossiers de sortie160 $DirsSortie = array();161 recursive_readdir($DIRsortie, 'DirsSortie', true);162 163 foreach($DirsSortie as $dir) {164 if (is_dir_empty($dir)) {165 rmdir($dir);166 } else if ($indexORNOT) {167 copy('files/index.php', $dir.'/index.php');168 }169 }170 171 unset($DirsSortie);172 173 174 175 ### Plugins après execution ###176 foreach ($PluginsAfter as $name => $config) {177 if ($config['active']) {178 include('plugins/'.$name.'.php');179 }180 }181 182 183 184 echo '<div class="finish">Opération terminée : '.intval((microtime(true)-$TIME_START)) .' secondes. <a href="index.php">Retour</a></div>';185 186 194 } else { 187 188 echo '<div class="finish">Prêt à commencer. <a href="index.php?Process=true">Exécuter</a></div>'; 189 195 echo '<div class="finish">Prêt à commencer. <a href="index.php?Process=true">Exécuter</a> <a href="setup.php">Configurer</a></div>'; 190 196 } 191 197
Note: See TracChangeset
for help on using the changeset viewer.