Колориметрия, печать и препресс: технологии Главная Форум Галерея Контакты Download Статьи
Сражаясь неустанно,
доживём мы, Санчо,
до Золотого века!
 

Форум колористов и полиграфистов

Колориметрия и печать: технологии
 
Текущее время: 10:03, Вс, 19 ноя 2017
Темы без ответов | Активные темы


Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 1:24, Пт, 03 ноя 2017 
Не в сети
Администратор

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 743
Откуда: Москва
Столкнулся с тем, что в сложном xml-файле одна программа записывала изредка не юникодные символы, например так:
Код:
CIELAB (2� observer, D50)
Где какой-то непонятный квадратик или символ в неизвестной кодировке, вместо значка градуса ° °
Мне этот значок не нужен был вообще в контексте вычислений, а функция simplexml_load_file из-за этого значка выдавала ошибку.
Решение простое - преобразовать вначале файл xml из юникода в юникод с игнорированием всех посторонних символов с помощью iconv:
Код:
$fileXML = fopen("/path/example.xml", 'r');
$textXML = fread($fileXML, filesize("/path/example.xml"));
fclose($fileXML);
$fileXML = fopen("/path/example.xml", 'w');
$textXML = iconv('utf-8', 'utf-8//IGNORE', $textXML);
fwrite($fileXML, $textXML);
fclose($fileXML);

И дальше функция simplexml_load_file начинает работать без ошибок. Замените путь /path/ к файлу на свой от корня сервера. Обращаю внимание, что "/path/example.xml" в двойных кавычках, если захочется брать имя файла из переменной, типа как: "/path/$examplexml". В двойных кавычках можно прямо так переменную в строку вписывать.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
© CIELab.XYZ
Создано на основе phpBB® Forum Software © phpBB Limited
Конференция запущена 18 августа 2004 года | Защищено от спама системой stopforumspam
Всего посещений - 4112036 | Всего за день - 455 | Уникальных сегодня - 66, вчера - 215, позавчера - 308