23
Авг
2017

Как с помощью PHP отредактировать файл у которого кодировка в Unicode?

Есть xml файлик с кодировкой Unicode, который был загружен методом POST. Как в нем можно что-то поменять и сохранить для дальнейшего пользование? simplexml_load_file() говорит, что Unicode не поддерживается. Пришлось раскодировать самому.

Раскодировать получилось, но вот теперь как закодировать? с кодировками плохо знаком Пока делаю так:

function decode_xml($xml){
    $arr = str_split($xml);
    $text = '';
    foreach ($arr as $key => $value) {
        if(preg_match("/[A-Za-z0-9]|\<|\>|\"|\'|\/|\=|\?|\ |\,|\./", $value)){
            $text .= $value;
        }
    }
    $text = str_replace("Unicode", 'Utf-8', $text);
    $xml = simplexml_load_string($text);
    return $xml;
}

function encode_xml($decoded_xml){
    //??
}

if($_FILES){
    $new_path = 'C:\Program Files (x86)\Bloody6\Bloody6\Data\RES\English\SLED\Standard\new2.ckAnimation';
    $tmp = $_FILES['file']['tmp_name'];
    $xml = file_get_contents($tmp); // $xml = ��<�?�x�m�l� �v�e�r�s�i�o�n�=�"�1�.�0�"� �e�n�c�o�d�i�n�g�=�"�U�n�i�c�o�d�e�"�?�>�
    $decoded_xml = decode_xml($xml); //раскодировать $xml
    var_dump($decoded_xml); //Вывести содержимое
    $encoded_xml = encode_xml($decoded_xml); //Закодировать
    file_put_contents($new_path, $encoded_xml); //сохранить
}

Пример такого xml: https://drive.google.com/open?id=0B58cr0kXJtKIUms1ekxDOEQwNGM

Источник: https://ru.stackoverflow.com/questions/709397/%D0%9A%D0%B0%D0%BA-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-php-%D0%BE%D1%82%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D1%83-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D0%BE%D0%B3%D0%BE-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B2-unicode

Share

Тебе может это понравится...