|
В моем предпоследнем проекте был пользовательский XML, куда заносились данные о товарах и предоставлялись партнерам в качестве рекламных материалов. XML выводился как обычный текст.
Сам XML был составлен по всем «законам жанра» – определение <?xml?> в начале, указание кодировки, главного тега. Все теги были закрыты, ошибок не было.
Браузеры, как Вы знаете, любят отображать XML по-своему. Оформлять его специальным образом. Этим занимается ФайрФокс и ИЕ (для Оперы нужен плагин). Чтобы было понятно о чем я, вот пример.
Но мой XML почему-то так не отображался. Он отображался просто текстом, причем теги «пропадали» (оно и понятно, браузер не знает таких тегов, но не показывает их). Заказчик же, заметив это, решил, что у меня неправильный XML (понятно, что на сам файл это никак не сказывается).
В чем было дело? Оказалось, что есть две причины на такое «неправильное» отображение.
1) Нужно передать заголовок Content-Type: text/xml; charset=utf-8. Отличается от «обычного» он типом контента (обычно text/html). В PHP заголовок передается так: header («Content-Type: text/xml; charset=utf-8″); (до вывода чего-либо, конечно).
2) По непонятной мне причине XML не может содержать наоборов символов а-ля , но при этом может содержать аналогичные замены для кавычек, например. Также XML не может содержать HTML-теги внутри XML-тегов. То есть может-то может, но тогда браузер будет ругаться на него.
Я написал небольшую функцию, через которую нужно пропустить текст до вывода в XML (скажем, описание товара). Она вырезает теги и некоторые недопустимые комбинации символов.
function xml_check($c){
$c = strip_tags ($c);
$c = str_replace («–», «», $c);
$c = str_replace (« », «», $c);
$c = str_replace («“», «», $c);
return $c;
}
Комментариев (6)
Страница 1 из 1
Страница 1 из 11
|
|
Что здесь почитать?
1. Разработки.
1.1 Плагин "Я не робот"
1.2 Плагин "Код Adsense прямо в пост"
2. Заработай.
2.1 Блогун: 20$ в день
2.2 Уходим от налогов в Sape
2.3 Хватит думать, пора зарабатывать
3. Акции и конкурсы.
3.1 Ссылка за "Рабочий стол"
Показать весь список.
полный список в процессе наполнения ;) посмотрите чуть позже
-->
|