fr:tips:findbadphp.php
findbadphp.php
Utilisez ce script pour trouver les fichiers PHP corrompus. Placez-le à la racine de votre wiki et appelez le depuis votre navigateur.
- findbad.php
<?php /** * Ce script vas chercher tous les fichiers PHP dans le dossier * courant et inférieur et chercher des retour à la ligne, des * espaces blancs et des BOMs UTF-8 */ header("Content-Type: text/plain"); echo "Début du script...\n"; flush(); traverse(dirname(__FILE__)); echo "Fin du script...\n"; function traverse($dir){ if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { //On ignore les fichiers cachés et les dossiers en majuscules if(preg_match('/^[\._]/',$file)) continue; if(is_dir($dir.'/'.$file)){ traverse($dir.'/'.$file); continue; } flush(); if(!preg_match('/\.php$/',$file)) continue; $check = @file_get_contents("$dir/$file",0,null,0,3); if(!$check){ echo "$dir/$file n'est pas accessible en lecture.\n"; continue; } if($check == "\xef\xbb\xbf"){ echo "$dir/$file a des BOM UTF-8 au début.\n"; continue; } if($check != '<?p'){ echo "$dir/$file ne commence pas par <?php\n"; continue; } $check = file_get_contents("$dir/$file",0,null, filesize("$dir/$file")-5,5); $pos = strpos($check, '?>'); if($pos !== false && !(substr($check,-2) == '?>' || substr($check,-3) == "?>\n") ){ echo "$dir/$file a un retour à la ligne après avoir fermé la balise ?>\n"; continue; } } closedir($dh); } }
fr/tips/findbadphp.php.txt · Dernière modification : 2017-11-02 15:48 de 161.106.4.5