проблемы с (textarea + спецсимволы)

 
0
 
JavaScript
ava
dstorm81 | 14.08.2007, 09:38
Доброго времени...
Появилась такая специфическая проблемка

есть xml файлы, с данными хранящимися в cdata секции
при создании xml файла данные уходящие из textarea (через php5) записываются правильно (<>&amp)
при редактировании xml - в textarea, из cdata секции, приходят данные, (если посмотреть исходный код,
а именно - содержимое textarea, то вроде всё правильно), однако отображаются они в textarea уже не как набор символов, а их html-интерпритация (<,>,&)
и при повторном постинге, если их опять не править вручную, они соответственно уже записываются как (<,>,&)

нашел выход из ситуации
данные из cdata секции вывожу не в textarea, а в div,
затем скриптом хватаю innerHTML дива и закидываю в value текстареа,
преобразование (&lt;&gt;&amp) не происходит, однако код уже не валидный - одиночные теги не закрыты

как я понял - нужен скрипт-парсер исправляющий эту ситуацию (буду благорарен за ссылку или сам код)
или всё-же есть ещё вариант на php без клиентского скрипта?

З.Ы. на валидность конечно можно покласть, но всё-же...
Comments (4)
ava
Rigel | 14.08.2007, 15:17 #
А почему бы перед записью в файл не преобразовать
$vr = preg_replace("/\</","&lt;",$vr);
и так далее?
ava
dstorm81 | 14.08.2007, 15:37 #
Цитата (Rigel @ 14.8.2007, 15:17 findReferencedText)
и так далее?

черезчур много символов (спецсимволы+буквы)
к тому же < > используются в разметке, а &lt; для отображения в pre, и в одном посте вместе

Склоняюсь к мысли что все-таки нужен скрипт для "закрытия" одиночных тегов,
что-то связанное с регуляркой, есть предложения или наработки?

ava
Rigel | 14.08.2007, 15:59 #
Цитата (dstorm81 @ 14.8.2007, 15:37)
к тому же < > используются в разметке, а &lt; для отображения в pre, и в одном посте вместе



Склоняюсь к мысли что все-таки нужен скрипт для "закрытия" одиночных тегов,

что-то связанное с регуляркой, есть предложения или наработки?

Так надо преобразовывать данные поля до того, как они вставлены в разметку. Кроме того, мы не говорили про преобразование букв - XML их понимает. Даже специальные функции преобразования: htmlspecialchars - преобразует специальные символы в HTML сущности и html_entity_decode , который преобразует HTML сущности в соответствующие символы, они буквы не трогают. Может быть, нужно URL-кодирование, quote-printable или что-нибудь такое?
ava
vasac | 14.08.2007, 16:44 #

<textarea><?php print htmlSpecialChars($data); ?></textarea>

Стандартная практика при редактировании данных из базы, вне зависимости где они используются, в XML или еще где.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  dstorm81   vasac   Rigel
advanced
Submit