Конвертиране на файлове от windows-1251 до UTF-8

Th3MaN

Registered
Здравейте,

Трябва ми програмка за WINDOWS, или php код с който да мога да конвертирам .php и .html файлове в който има кирилица във UTF-8 формат.

Знам, че може с notepad, но става въпрос за много файлове и искам да задам примерно цяла директория и да конвертира всички файлове в нея.

Трябва ми за да мога да променя енкодинга на сайт от Windows-1251 на UTF-8. С базата данни се справих, но не знам с какво да конвертирам файловете?

Благодаря предварително.
 
Мисля, че с Dreamviewer ще стане това..
Няма да е тей цяла директория, но ще го промениш бързо с копиране, до колкото разбирам искаш да промениш мета таговете в файловете от windows-1251 към utf8
 
С кода на MakeAWish би трябвало да стане... аз щях да ти дам същият код, да пробваш :)
 
Да кога на MakeAWish върши работа сега го тествах. Имам само няколко неща който, ако може да станат ще ми е по полезно.

1. Може ли да прави проверка дали файла вече е конвертиран. В смисъл ако вече е UTF-8 да не го изпълнява пак, защото ако сега се пусне 2 пъти на втория път го прецаква.

2. Как да се направи output файла да е различен от input файла. В смисъл да си направа примерно нова директория UTF-8 и след като го конвертира да записва нов файл със същото съдържание само че вече UTF-8 в новата папка?

Това, е с цел да не прецакам някой файл случайно. Аз ще си направа пълен бекъп, но за всеки случай, ако може и това да стане ще е супер. Иначе и така ще ми свърши работа. Много благодаря.
 
Код:
<?php
$file = 'file.txt';
$newFile = 'UTF8dir/file.txt';

function detectUTF8($string)
{
		// Източник: http://www.php.net/manual/bg/function.iconv.php
        return preg_match('%(?:
        [\xC2-\xDF][\x80-\xBF]        # non-overlong 2-byte
        |\xE0[\xA0-\xBF][\x80-\xBF]               # excluding overlongs
        |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}      # straight 3-byte
        |\xED[\x80-\x9F][\x80-\xBF]               # excluding surrogates
        |\xF0[\x90-\xBF][\x80-\xBF]{2}    # planes 1-3
        |[\xF1-\xF3][\x80-\xBF]{3}                  # planes 4-15
        |\xF4[\x80-\x8F][\x80-\xBF]{2}    # plane 16
        )+%xs', $string);
}

$fopen = fopen($file, 'r'); 
$fread = fread($fopen, filesize($file)); 
fclose($fopen); 

if(!detectUTF8($fread))
{
	$fopen2 = fopen($newFile, 'w'); 
	fputs($fopen2, iconv('', 'UTF-8', $fread)); 
	fclose($fopen2); 
}
else
	printf('Файл <strong>%s</strong> вече е конвертиран.', $file);
?>
 

Back
Горе