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

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

Колориметрия и печать: технологии
 
Текущее время: 17:58, Сб, 28 мар 2020

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


Новые
ответы
в темах:



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

Зарегистрирован: 16:58, Ср, 18 авг 2004
Сообщения: 931
Откуда: Москва
Столкнулся с тем, что в сложном 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


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

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


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

Перейти: 

cron
© CIELab.XYZ
Создано на основе phpBB® Forum Software © phpBB Limited
Конференция запущена 18 августа 2004 года | Защищено от спама системой stopforumspam
Всего посещений - 6122698 | Всего за день - 28874 | Уникальных сегодня - 1771, вчера - 2027, позавчера - 2032