Вывод php в xml

SERIAL

Админ
Регистрация
5 Апр 2006
Сообщения
557
Реакции
193
Ребят помогите! Вопрос!
Надо записать те данные которые выводятся в index.php в файл index.xml . Все просто и тупо! Но сделать никак не получается!

Заранее благодарен!
 
Сначала открываем файл для записи
$fp = fopen("index.xml", "w");
Затем заменяем все echo на
fputs($fp, 'QWEQWEQ');
где QWEQWEQ это все то что выводилось через echo
примерно так.
Но я так понимаю что у xml должна быть структура какая то
У каждого свои варианты решения записи, так что не критикуйте)

Вот, в index.php
вставляем $fp = fopen("index.xml", "w");
а потом вместо
PHP:
    echo "<td>".$res['name']."</td>";
    echo "<td>".$res['age']."</td>";
    echo "<td>".$res['email']."</td>";
Пишем
PHP:
fputs($fp, $res['name'].';');
    fputs($fp, $res['age'].';');
    fputs($fp, $res['email'].";\r\n");
В итоге получим на каждую строчку по 1 юзеру я так понял в виде
Имя;Возраст;Мыло
Имя;Возраст;Мыло
Имя;Возраст;Мыло
 
PHP:
    $usersArr = array(
        array('name'=>'user1', 'age'=>25, 'email'=>'email1@email'),
        array('name'=>'user2', 'age'=>22, 'email'=>'qwesd@email'),
        array('name'=>'user3', 'age'=>21, 'email'=>'123we@email'),
        array('name'=>'user4', 'age'=>24, 'email'=>'email4@email'),
    );
 
    $xml = new DomDocument('1.0','utf-8');
    $xml->formatOutput = true;
 
    $users  = $xml->appendChild($xml->createElement('users'));
    $xml->appendChild( $users );
   
    foreach($usersArr as $u)
    {
        $user = $xml->appendChild($xml->createElement('user'));
       
        $name = $xml->createElement( "name" );
        $name->appendChild( $xml->createTextNode( $u['name'] ) );
        $user->appendChild( $name );
 
        $age = $xml->createElement( "age" );
        $age->appendChild( $xml->createTextNode( $u['age'] ) );
        $user->appendChild( $age );
 
        $email = $xml->createElement( "email" );
        $email->appendChild( $xml->createTextNode( $u['email'] ) );
        $user->appendChild( $email );
 
        $users->appendChild( $user );
    }
 
    $xml->save('result.xml');


подставь ток вместо масива свою выборку из БД
 
Сначала открываем файл для записи
$fp = fopen("index.xml", "w");
Затем заменяем все echo на
fputs($fp, 'QWEQWEQ');
где QWEQWEQ это все то что выводилось через echo
примерно так.
Но я так понимаю что у xml должна быть структура какая то
У каждого свои варианты решения записи, так что не критикуйте)

Вот, в index.php
вставляем $fp = fopen("index.xml", "w");
а потом вместо
PHP:
    echo "<td>".$res['name']."</td>";
    echo "<td>".$res['age']."</td>";
    echo "<td>".$res['email']."</td>";
Пишем
PHP:
fputs($fp, $res['name'].';');
    fputs($fp, $res['age'].';');
    fputs($fp, $res['email'].";\r\n");
В итоге получим на каждую строчку по 1 юзеру я так понял в виде
Имя;Возраст;Мыло
Имя;Возраст;Мыло
Имя;Возраст;Мыло



Чего-то нечего не выводит, index.php такой
PHP:
<?php
 
$fp = fopen("index.xml", "w");
 
echo "<table width='80%' border=0>";
 
echo "<tr bgcolor='#CCCCCC'>";
echo "<td>Name</td>";
echo "<td>Age</td>";
echo "<td>Email</td>";
echo "<td>Update</td>";
echo "</tr>";
 
while($res=mysql_fetch_array($result)){
   
    echo "<tr>";
fputs($fp, $res['name'].';');
    fputs($fp, $res['age'].';');
    fputs($fp, $res['email'].";\r\n");
    echo "<td><a href=\"edit.php?id=$res[id]\">Edit</a> | <a href=\"delete.php?id=$res[id]\">Delete</a></td>";
   
}
echo "</table>";
?>
<-------------- добавлено через 59 сек. -------------->
PHP:
    $usersArr = array(
        array('name'=>'user1', 'age'=>25, 'email'=>'email1@email'),
        array('name'=>'user2', 'age'=>22, 'email'=>'qwesd@email'),
        array('name'=>'user3', 'age'=>21, 'email'=>'123we@email'),
        array('name'=>'user4', 'age'=>24, 'email'=>'email4@email'),
    );
 
    $xml = new DomDocument('1.0','utf-8');
    $xml->formatOutput = true;
 
    $users  = $xml->appendChild($xml->createElement('users'));
    $xml->appendChild( $users );
 
    foreach($usersArr as $u)
    {
        $user = $xml->appendChild($xml->createElement('user'));
     
        $name = $xml->createElement( "name" );
        $name->appendChild( $xml->createTextNode( $u['name'] ) );
        $user->appendChild( $name );
 
        $age = $xml->createElement( "age" );
        $age->appendChild( $xml->createTextNode( $u['age'] ) );
        $user->appendChild( $age );
 
        $email = $xml->createElement( "email" );
        $email->appendChild( $xml->createTextNode( $u['email'] ) );
        $user->appendChild( $email );
 
        $users->appendChild( $user );
    }
 
    $xml->save('result.xml');


подставь ток вместо масива свою выборку из БД
тоже не работает. Можно с примером? Или уже готовым скриптом плиз)
 
так я и и бросил "готовый" скрипт
его нужно лишь присобачить к БД

скрипт создает файл 'result.xml' в который собсно и пишет XML-документ ( структуру взял наугад, так как хз какая нужна )

а что не работает то? или может предполагалось что-то отличное от того что сделал я ?
 
Чего-то нечего не выводит, index.php такой
Все верно, потому что база пустая))
Жмем добавить Для просмотра ссылки Войди или Зарегистрируйся
И набиваем данные.
Затем поставь оригинальный index.php
и посмотри выведется ли хоть одна запись из бд. !!!Таблица в бд должна называться users
Если выведется то напиши в index.php
PHP:
<?php
include_once("config.php");
$result=mysql_query("SELECT * FROM signal_database ORDER BY id DESC");
?>
<html>
<title>Homepage</title>
<body>
<a href="add.html">Add New Data</a><br/><br/>
<?php
$fp = fopen("index.xml", "w");
fputs($fp, "<?xml version='1.0' encoding='UTF-8' ?>\r\n<users>\r\n");
while($res=mysql_fetch_array($result)){
fputs($fp, "<useritem>\r\n");
fputs($fp, '<username>'.$res['name']."</username>\r\n");
fputs($fp, '<userage>'.$res['age']."</userage>\r\n");
fputs($fp, '<useremail>'.$res['email']."</useremail>\r\n");
fputs($fp, "</useritem>\r\n");
}
fputs($fp, "</users>\r\n");
?>
</body>
</html>
Я только что все это проделал
Вот что на выходе получил:
Код:
<?xml version='1.0' encoding='UTF-8' ?>
<users>
<useritem>
<username>qwe 2</username>
<userage>123</userage>
<useremail>qwe2@qwe.com</useremail>
</useritem>
<useritem>
<username>qwe 1</username>
<userage>123</userage>
<useremail>qwe1@qwe.com</useremail>
</useritem>
</users>
 
Все верно, потому что база пустая))
Жмем добавить Для просмотра ссылки Войди или Зарегистрируйся
И набиваем данные.
Затем поставь оригинальный index.php
и посмотри выведется ли хоть одна запись из бд. !!!Таблица в бд должна называться users
Если выведется то напиши в index.php
PHP:
<?php
include_once("config.php");
$result=mysql_query("SELECT * FROM signal_database ORDER BY id DESC");
?>
<html>
<title>Homepage</title>
<body>
<a href="add.html">Add New Data</a><br/><br/>
<?php
$fp = fopen("index.xml", "w");
fputs($fp, "<?xml version='1.0' encoding='UTF-8' ?>\r\n<users>\r\n");
while($res=mysql_fetch_array($result)){
fputs($fp, "<useritem>\r\n");
fputs($fp, '<username>'.$res['name']."</username>\r\n");
fputs($fp, '<userage>'.$res['age']."</userage>\r\n");
fputs($fp, '<useremail>'.$res['email']."</useremail>\r\n");
fputs($fp, "</useritem>\r\n");
}
fputs($fp, "</users>\r\n");
?>
</body>
</html>
Я только что все это проделал
Вот что на выходе получил:
Код:
<?xml version='1.0' encoding='UTF-8' ?>
<users>
<useritem>
<username>qwe 2</username>
<userage>123</userage>
<useremail>qwe2@qwe.com</useremail>
</useritem>
<useritem>
<username>qwe 1</username>
<userage>123</userage>
<useremail>qwe1@qwe.com</useremail>
</useritem>
</users>
Огромное спасибо! Работает! :))) Плюсик)
 
Без, обид, но так не будет работать, точнее ни один нормальный сервис загрузки xml не прочитает Ваш файл, сам недавно столкнулся с этой проблемой, сейчас все почти заголовок проверяют, поэтому в начале строку нужно
header("Content-type: text/xml; charset=UTF-8");
 
Назад
Сверху