powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) ASCII в XML
9 сообщений из 9, страница 1 из 1
(PHP) ASCII в XML
    #38439412
Jetro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38439414
Jetro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация следующая - есть XML файл, содержимого которого контролировать невозможно. Подгружаю этот файл с помощью simplexml. Все работало отлично, пока в файл не попал символ, похожий на "alt + 17", сюда скопировать так и не получилось. Так вот, после того как этот символ туда попал, при подгрузке файла появляется ошибка:
Код: plaintext
1.
2.
3.
Warning: simplexml_load_file(): /usr/data/xml.xml:47: parser error : PCDATA invalid Char value 17 in /usr/local/www/apache24/data/ip.php on line 25
Warning: simplexml_load_file(): <from>here_symbol</from> in /usr/local/www/apache24/data/ip.php on line 25
Warning: simplexml_load_file(): ^ in /usr/local/www/apache24/data/ip.php on line 25

Я понимаю что это варнинг, но не смотря на это во первых мне не хочется читать предупреждения, а во вторых нужный текст не выводиться.

Если напрямую открыть xml файл в мозилле, то вылазит ошибка "Ошибка синтаксического анализа XML: некорректно". Если открыть в осле - файл открывается нормально, даже фимвол отображается.

Что я хочу чтобы у меня вышло:
Идеально было-бы выводить любые ASCII символы, и что-бы это не вызывало ни варнингов ни ошибок. В худшем случае хотя-бы как-то выбросить неформальные символы с исходного файла.
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38439425
Jetro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При попытке отправки всех данных в первом сообщении вылазила ошибка " Тема содержит недопустимые символы. ". Удалил все данные, после чего отправилось нормально, а как сообщение править - не нашел.
Так вот, символ следующий "◄".
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38439537
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jetro,

поместите данные в CDATA
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38439544
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

а сами данные в base64. тогда ничего ломаться не будет
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38441063
Jetro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
r u,
Что-то какой-то быдлокод получиться.
А во вторых как мне закодировать в base64, если у меня ошибка на этапе чтения XML файла?
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38441369
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Ну в xml недопустимы символы из диапазона #0 - #1F кроме #9, #A, #D. Так что все правильно, xml невалидный. Если вам пришлют jpg переименованный в xml, вы тоже будете хотеть, чтобы он без ошибок разбирался?
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38441402
Jetro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, подойдем с другой стороны - я сам генерирую XML файл, но отфильтровать вносимые данные не представляется возможным. Возможно как-то экранировать весь текст, в который могут попасть спецсимволы?
...
Рейтинг: 0 / 0
(PHP) ASCII в XML
    #38442956
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JetroЛадно, подойдем с другой стороны - я сам генерирую XML файл, но отфильтровать вносимые данные не представляется возможным. Возможно как-то экранировать весь текст, в который могут попасть спецсимволы?
ненадо ничего фильтровать. закодируйте их в base64_encode.
а при разборе xml , раскодируете обратно base64_decode.
все так делают (c)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) ASCII в XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]