![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Пользователь
Пол:
Регистрация: 28.08.2007
Сообщений: 45
Репутация: 5
|
Доброго времени суток, втсал вопрос - вылить базу в XML и файл сохранять на серваке, в PHP двоешник, а в XML - это вообще космос для меня, но пхп что то еще ковыряю.
Вобщем тестю на денвере, ничего вообще не получатеся, есть у кого нить пример что бы доступно и понятно было разобрать его, погуглил, инфы масса но ниче не понятно, пробовал с самого простого, не вышло, вот в примерная структура XML: Код:
<?xml version="1.0" encoding="utf-8"?>
<source creation-time="2010-04-22 22:00:22 GMT+2" host="www.ххххх.ru">
<spisok>
<position>
<name>НАИМЕНОВАНИЕ</name>
<price>123</price>
<cur>123</cur>
</position>
</spisok>
</source>
Код:
$database->setQuery("SELECT * FROM #__goods WHERE `top` = 1");
$list = $database->loadObjectList();
//перебираю и вывожу записи
foreach($list as $history) {
echo "<br>".$history->goods." Цена- ".$history->price." ".$history->currency;
}
|
|
|
|
| Реклама: |
|
|
#2
|
|
Неделька уже прошла, если еще актуально - то готов предложить решение. Делается достаточно просто используя базовый компонент ПХП.
__________________
Имя величайшему из всех изобретателей: Случайность. |
|
|
|
|
|
|
#3
|
|
Пользователь
Пол:
Регистрация: 28.08.2007
Сообщений: 45
Репутация: 5
|
Конечно, помощь все есче нужна, я вод думаю может экранировать надо? (Не тестил пока на другой части работы сижу.)
И еще попутно - на денвере и на хосте fopen() ну и fwrite() тоже не работают :-( Пивас с меня при успешном решении :-) |
|
|
|
|
|
#4
|
|
2 варианта есть, первый руками создавать весь этот XML, второй вариант (который я используя всегда) это DOM Document:
<?php date_default_timezone_set('Europe/Moscow'); // создаем новый документ $dom = new DOMDocument('1.0', 'utf-8'); // создаем основной элемент - корень $root = $dom->createElement('source'); $root->setAttribute('creation-time', date('Y-m-d H:i:s O')); $root->setAttribute('host', 'localhost'); // добавить spisok $spisok = $dom->createElement('spisok'); foreach ($list as $history) { $position = $dom->createElement('position'); $name = $dom->createElement('name', 'lalalala'); $price = $dom->createElement('price', 'pppp'); $cur = $dom->createElement('cur', 'cccc'); $position->appendChild($name); $position->appendChild($price); $position->appendChild($cur); $spisok->appendChild($position); } $root->appendChild($spisok); // добавляем корень в документ $dom->appendChild($root); echo $dom->saveXML(); ?>
__________________
Имя величайшему из всех изобретателей: Случайность. |
|
|
|
|
|
|
#5
|
|
Пользователь
Пол:
Регистрация: 28.08.2007
Сообщений: 45
Репутация: 5
|
А первый пример можно?
И как будет выглядеть хост в этой строке Код:
$root->setAttribute('host', 'localhost');
Затестю завтра. |
|
|
|
|
|
#6
|
|
Первый пример будет такого рода:
<?php date_default_timezone_set('Europe/Moscow'); $xml = '<?xml version="1.0" encoding="utf-8"?><source creation-time="' . date('Y-m-d H:i:s O') . '" host="' . $_SERVER['SERVER_NAME'] . '">'; $xml .= '<spisok>'; foreach ($history as $list) { $xml .= '<position>'; $xml .= '<name>' . $list['name'] . '</name>'; $xml .= '<price>' . $list['price'] . '</price>'; $xml .= '<cur>' . $list['cur'] . '</cur>'; $xml .= '</position>'; } $xml .= '</spisok>'; $xml .= '</source>'; $xml .= '</root>'; ?> WMR к сожалению не пью! Так что будут вопросы - обращайся!
__________________
Имя величайшему из всех изобретателей: Случайность. |
|
|
|
|
| Сказали спасибо: |
|
|
#7
|
|
Пользователь
Пол:
Регистрация: 28.08.2007
Сообщений: 45
Репутация: 5
|
OlegRom, помоги еще с одним вопрсом:
Пошел первым путем, не могу добавить перевод строки, база в 1251, файл со скриптом тоже в 1251, выгоняю в utf, файл на выходе в utf без BOM вот кусок: Код:
$correct_return = '\r\n';
$xml = '<?xml version="1.0" encoding="utf-8"?>'.$correct_return.'<source creation-time="' . date('Y-m-d H:i:s O') . '" host="www.' . $_SERVER['SERVER_NAME'] . '">'.$correct_return;
|
|
|
|
|
|
#8
|
|
А ты \r\n в двойных скобках напиши. Одинарные бэкслэши оставляют как есть.
$correct_return = "\r\n";
__________________
Имя величайшему из всех изобретателей: Случайность. |
|
|
|
|
| Сказали спасибо: |
|
|
#9
|
|
Пользователь
Пол:
Регистрация: 28.08.2007
Сообщений: 45
Репутация: 5
|
законвертил в утф с помощью iconv и запахало, спасибо, неуспел написать :-)
а твой метод попробую и возьму на вооружение, есче раз спасибо! |
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Разграничение доступа в интернет средствами AD | Alexei_T | Windows 200x Server | 55 | 01.10.2010 09:03 |
| архивирование средствами FreeBSD | elitegroup | Скорая помощь | 3 | 19.03.2010 08:21 |
| Настройка маршрутизации средствами Windows XP | vov4ka | Windows XP | 18 | 16.12.2009 09:32 |
| Перевод строки в число средствами С++.NET | Ivan_32 | Visual C++ / С/C++ | 4 | 20.05.2008 02:35 |
| Синхронизация средствами Win XP | Vem | Windows XP | 18 | 02.09.2007 18:40 |
|
|