🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

Генерация XML в PHP

July 14, 2008 in PHP

Рассматривая примеры генерации XML-выгрузок от различных украинских маркетов (не буду никого смущать прямыми ссылками), удивлен тем, что многие используют обыкновенную шаблонную методику, вроде:

```php productID?>” top=”0”> name)?> price?> categoryID?> description)?> productID)?> image)?> ```

Я уже молчу о том, что в данном конкретном примере присутствуют short_open_tags.
Но почему не использовать встроенные в PHP 5 DOM-классы? Это дает нам такие преимущества (навскидку):

Посмотрим на генерацию того же фрагмента XML средствами DomDocument:

```php appendChild( $dom->createElement('item')); $item -> setAttribute('id', $o->productID); $item -> setAttribute('top', '0'); $item -> appendChild( $dom->createElement('price', $record['price'])); $item -> appendChild( $dom->createElement('categoryId', $o->categoryID)); $item -> appendChild( $dom->createElement('name',htmlspecialchars($o->name))); $item -> appendChild( $dom->createElement('description', htmlspecialchars($o->description))); $item -> appendChild( $dom->createElement('url', htmlspecialchars("http://myshop.kiev.ua/index.php?productID=".$o->productID))); $item -> appendChild( $dom->createElement('image', htmlspecialchars("http://myshop.kiev.ua/pictures/".$o->image))); ```

Разве этот код не понятнее и структурнее, чем tag soup из первого примера? Да, писать придется немного больше, зато ты никаким образом не отдашь в XML неэскейпленные символы, незакрытые теги и прочий мусор.

Немного теории

Для начала все, что надо знать – это пять функций. Почитай их описание в PHP Manual:

Все, дальше курим маны и больше никогда, никогда, никогда не выводим XML шаблонами.

Buy me a coffee Понравился пост? Купи мне кофе