Програма смены кодировок

#1 10 января 2014 в 20:24
Не у каво нет программы для массовой смены кодировки файлам? папками…
#4 10 января 2014 в 20:30
Запрос: рекурсивная смена кодировки
#5 10 января 2014 в 20:30
но там в гуглне ненашол а писать php скрипт для смнеы влом
#6 11 января 2014 в 00:23

но там в гуглне ненашол а писать php скрипт для смнеы влом

Константин Г.
20 строк влом написать?
#7 11 января 2014 в 13:41
создай файл recode.php
в него вот этот код
  1. <?php
  2. define('LOWERCASE',3);
  3. define('UPPERCASE',1);
  4. function detect_cyr_charset($str) { // функция определения кодировки
  5. $charsets = Array('k' => 0, 'w' => 0, 'd' => 0, 'i' => 0, 'm' => 0);
  6. for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
  7. $char = ord($str[$i]);
  8. //non-russian characters
  9. if ($char < 128 || $char > 256) continue;
  10. //CP866
  11. if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
  12. $charsets['d']+=LOWERCASE;
  13. if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;
  14. //KOI8-R
  15. if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
  16. if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;
  17. //WIN-1251
  18. if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
  19. if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;
  20. //MAC
  21. if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
  22. if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;
  23. //ISO-8859-5
  24. if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
  25. if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;
  26. }
  27. arsort($charsets);
  28. return key($charsets);
  29. }
  30. ?>
  31. <?php
  32. if(isset($_POST['go'])) {
  33. $dir = './';
  34. $files = scandir($dir); // сканируем папку в которой лежит файл "recode.php"
  35. foreach($files as $file) {
  36. if((stristr($file, '.htm')) or (stristr($file, '.html'))) { // выбираем файлы с расширением .htm и .html
  37. $html = file_get_contents($dir.$file);
  38. if (detect_cyr_charset($html)!='w') continue; // проверяем кодировку
  39. $html=iconv("cp1251", "utf-8", $html);
  40. $html = preg_replace("'charset=windows-1251'si", "charset=utf-8", $html, 1);
  41. file_put_contents($dir.$file, $html);
  42. echo $file.' - OK! Перекодирован в utf-8<br>';
  43. }
  44. }
  45. file_put_contents($dir.'.htaccess', '
  46. AddDefaultCharset utf-8',FILE_APPEND);
  47. }
  48. ?>
  49. <center>
  50. <form style="margin:100px auto;" method="POST" id="form" name="form" action="recode.php">
  51. <input type="hidden" name="go">
  52. <input name="botton" type="submit" value="ПЕРЕКОДИРОВАТЬ HTML ФАЙЛЫ" />
  53. </form>
  54. </center>
кидаешь в папку где надо файлы перекодировать и запускаешь скрипт на серве
это для html файлов, под php файлы сам перепишешь
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.