Сканер Bom сигнатуры в php файлах хостинга

  1. <?php
  2.  
  3. $dir = dirname(__FILE__);
  4. function recursive_dir($dir) {
  5. $arr = realpath($dir);
  6. foreach (new DirectoryIterator($dir) as $fileInfo) {
  7. if($fileInfo->isDot()) continue;
  8. if ($fileInfo->isDir()) {
  9. $arr .= '|' . recursive_dir($fileInfo->getPathname());
  10. $arr .= '|' . $fileInfo->getPathname();
  11. } elseif ($fileInfo->isFile()) {
  12. $arr .= '|' . $fileInfo->getPathname();
  13. }
  14. }
  15. return explode('|', $arr);
  16. }
  17. $x=0;
  18. $arr = recursive_dir($dir);
  19.  
  20. if (is_array($arr)) {
  21. foreach ($arr as $k => $v) {
  22. if (is_file(trim($arr[$k]))) {
  23. if (end(explode('.', trim($arr[$k])))=='php') { // or end(explode('.', trim($arr[$k])))=='sql'
  24. $char = "\xEF\xBB\xBF";
  25. $file = new SplFileObject($arr[$k]);
  26. $file->setMaxLineLen(4);
  27. $data = $file->fgets();
  28. if ($char === $data) {
  29. echo '<div>Обнаружен BOM в файле ' . $arr[$k] . '</div>';
  30. $x=1;
  31. }
  32. $file->fseek(0);
  33. }
  34. }
  35. }
  36. }
  37. if ($x!=1) {
  38. echo '<div>Файлы с BOM не обнаружены</div>';    
  39. }
  40. ?>
Поможет найти файлы с косяком при сохранении, очень должен помочь начинающим. Вырвал со своего ФМ. Может когда то сделаю его независимым, и назову CMS Ґґ. Пользуйтесь

Реклама

Мы в соцсетях

tw tg yt gt