| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: X технологии > htmlspecialchars_decode или передача спец символов |
| Автор: crang 13.7.2009, 14:58 | ||||||
| Доброго времени суток! Есть скрипт, который анализирут структуру XML и вставляет дополнительный узел:
результат выглядит так:
Вопрос - как нормально передавать из PHP спец символы? Или конкретно - как передать строку
|
| Автор: skyboy 13.7.2009, 15:16 | ||||
дело в том, что у тебя уже строка. чтоб корректно запихнуть строку
в создаваемый элемент <mapico>, в строке переводятся в сущности все спецсимволы. и происходит это в потому htmlspecialchars_decode, отрабатывающий шагом ранее, никакого влияния не оказывает. Добавлено через 4 минуты и 8 секунд я думаю(предположение гипотетическое: с Dom из-под PHP не работал) должно сработать подобное:
|
| Автор: crang 13.7.2009, 15:48 | ||
| к сожалению ошибка: Fatal error: Uncaught exception 'DOMException' with message 'Wrong Document Error' in /usr/home/crang/public_html/st/index.php:26 Stack trace: #0 /usr/home/crang/public_html/st/index.php(26): DOMNode->appendChild(Object(DOMElement)) #1 {main} thrown in /usr/home/crang/public_html/st/index.php on line 26 вот что я оставил:
экземпляр $dom создан ранее, поэтому твою строку 2 опустил.. и попутно 2 вопроса: 1. не затирает ли метод loadHTML уже созданную структуру $dom? 2. не совсем понятен смысл строки tmpMap = $dom->documentElement , т.е. как потом при вызове метода appendChild($tmpMap) ПХП поймет какое значение добавлять? |
| Автор: solenko 13.7.2009, 15:56 |
| crang, используйте http://ua2.php.net/manual/en/domdocument.createcdatasection.php |
| Автор: skyboy 13.7.2009, 19:10 |
| кстати, да. я пытался придумать, как верстку из строки вставить в структуру XML. Если же тебе надо просто для "транспорта" строку запихнуть в структуру, а потом оттуда изъять - используй CDATA. да, заменяет. созданной из отпарсенной строки, переданной аргументом. в $dom - переменная класса DOMDocument. Чтоб вставить через appendChild в другой элемент, надо иметь объект класса DOMNode. $dom->documentElement возвращает как раз первый элемент класса DOMNode(которая наследует класс DOMElement). Но это был чисто теоретический изыск. Скорее всего, опираясь только на документацию, я что-то не так понял и допустил ошибку. |
| Автор: crang 14.7.2009, 11:04 | ||||
спасибо всем, решилось обходом использования тегов в пхп коде, добавил в XSL шаблон:
а в пхп скрипте передал атрибуты:
|