Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как работать с xml?
 
 автор: JIEXA   (15.05.2005 в 15:44)   письмо автору
 
 

Я не работал с xml ещё не когда, не подскажите, как можно вытащить данные, которые лежат в xml. Если не трудно, с примерчиком! :))))

   
 
 автор: JIEXA   (15.05.2005 в 16:05)   письмо автору
 
   для: JIEXA   (15.05.2005 в 15:44)
 

примечание: в php5

   
 
 автор: JIEXA   (15.05.2005 в 18:03)   письмо автору
 
   для: JIEXA   (15.05.2005 в 16:05)
 

Просто я зарегенился в одной партнерской программе, и там все данные лежат в xml. Мне их нужно экспортировать на сайт.
Вот что там написанно, в инструкции:

Использование скриптов для экспорта XML на примере экспорта базы полифонических мелодий:



Использование утилиты выгрузки базы полифонических мелодий http://wwwm.playfon.ru/melody2xml.php

Параметры:
ph_did = код дилера,
update_id = Параметр(кода лога обновления) определяющий с какого места (во времени) Вы пытаетесь получить данные. Но указывается не время, а целое число. Каждое событие в базе увеличивает данный счётчимк. Т.е. если произошли изменения в какой либо позиции базы, то счётчик будет увеличен и будет соответствовать изменённой/добавленной/удалённой позиции в базе.


Возможные значения:
0 - вывести текущее состояние всей базы. (Например, http://wwwm.playfon.ru/melody2xml.php?ph_did=123456&update_id=0)
<чиcло больше нуля> - выдаётся обновление базы на основе кода лога обновления. (От состояния указанного в параметре)

Во всех выгрузках в теге melody_update указываются параметры:
for - на основе какого кода указанного в update_id выгружаются данные
from - Начиная с какого кода обновления выводятся данные
to - Текущее состояние лога обновления
(До данного места будут выводиться обновления. При следующей загрузке следует использовать его, чтобы получить только новые обновления)
Пример выгрузки тэга melody_update:
<melody_update for="3800" from="3800" to="3849">,
(в следующий раз вызывать как update_id=3849) 

Пример вызова скрипта выгрузки:
Например, http://wwwm.playfon.ru/melody2xml.php?ph_did=123456&update_id=3800 




top = 1 - используется вместо update_id, для получения рейтинга мелодий (30 позиций).



Например, http://wwwm.playfon.ru/melody2xml.php?ph_did=123456&top=1




Та же структура при работе с играми и картинками



http://wwwi.playfon.ru/image2xml.php

http://wwwg.playfon.ru/game2xml.php

   
 
 автор: cheops   (15.05.2005 в 18:39)   письмо автору
 
   для: JIEXA   (15.05.2005 в 15:44)
 

Знаете лучше прикрепите к сообщению XML-файл - это легче на примере показать, чем абстрактно объяснять. Просто там на функциях обратного вызова всё построено.

   
 
 автор: JIEXA   (15.05.2005 в 18:43)   письмо автору
 
   для: cheops   (15.05.2005 в 18:39)
 

Вот прикрепил...

   
 
 автор: JIEXA   (16.05.2005 в 00:18)   письмо автору
 
   для: JIEXA   (15.05.2005 в 18:43)
 

ну так что?

   
 
 автор: cheops   (16.05.2005 в 01:07)   письмо автору
 
   для: JIEXA   (16.05.2005 в 00:18)
 

Не так быстро, сегодня я уже наверное не успею решить эту задачу - уже поздно, давайте на завтра отложим.

   
 
 автор: JIEXA   (16.05.2005 в 01:12)   письмо автору
 
   для: cheops   (16.05.2005 в 01:07)
 

ок буду ждать, завтра напомню :)

   
 
 автор: cheops   (16.05.2005 в 01:22)   письмо автору
 
   для: JIEXA   (16.05.2005 в 01:12)
 

Я завтра в разъездах, до задачи доберусь только вечером, вы частый гость на форуме :))) поднимите тему, если не сложно, от 12 дня до 19 вечера, чтобы она не была отмечена у меня как прочитанная.

   
 
 автор: JIEXA   (16.05.2005 в 21:36)   письмо автору
 
   для: cheops   (16.05.2005 в 01:22)
 

> поднимите тему, если не сложно,
это если вам не сложно ответеть :))))
> от 12 дня до 19 вечера
сейчас 21:36 я только что пришел домой, чтобы поесть, а то делаю призентацию для школы. Сейчас не поздно поднимать?
зы: вот и поднял :))))

   
 
 автор: cheops   (17.05.2005 в 12:49)   письмо автору
 
   для: JIEXA   (16.05.2005 в 21:36)
 

У меня вчера вечер вылетел... поэтому только сегодня смогу с этой задачей поработать /*записывая в список дел*/.

   
 
 автор: JIEXA   (17.05.2005 в 19:27)   письмо автору
 
   для: cheops   (17.05.2005 в 12:49)
 

спасибо )

   
 
 автор: cheops   (18.05.2005 в 01:16)   письмо автору
1.9 Кб
 
   для: JIEXA   (17.05.2005 в 19:27)
 

Примерно так.

   
 
 автор: JIEXA   (18.05.2005 в 19:26)   письмо автору
 
   для: cheops   (18.05.2005 в 01:16)
 

ок сейчас алгебру доделаю и буду смотреть, спасибо.
зы: не удаляйте/закрывайте тему, так как вопросы ещё точно будут ;)

   
 
 автор: JIEXA   (18.05.2005 в 20:04)   письмо автору
 
   для: cheops   (18.05.2005 в 01:16)
 

Вот ваш код (я там только foreach добавил)

<?php
  
// Устанавливаем не ограниченное время выполнения скрипта
  
if($_SERVER['SERVER_NAME'] == "localhost"set_time_limit(0);
  
// Подключаем библиотеку для разбора xml
  
include "utilxml.php";
  
$url "melody2xml.php";
  
// Вызываем функцию разбора файла и получаем массив
  
$shop getarrayfromxml($url);
  foreach(
$shop as $val)
  {
          foreach(
$val as $val2)
          {
                  foreach(
$val2 as $key => $val3)
                  {
                          print 
$key.":".$val3."<br>";
                  }
          }
          print 
"<br><br>";
  }
?>

Немогли бы вы подсказать, как сделать, чтобы выводилился инфа из <phones></phones>. И ещё сами мелодии. А также к примеру мелодии, у которых к примеру genre_id равен 121. Ну и для кучи, как сделать постраничную навигацию.
зы: заранее спасибо, мне это очень может, и если не трудно с примерчиками )

   
 
 автор: JIEXA   (19.05.2005 в 00:56)   письмо автору
 
   для: JIEXA   (18.05.2005 в 20:04)
 

так что, это ни как? слишком трудно?

   
 
 автор: localGhost   (19.05.2005 в 09:00)   письмо автору
 
   для: JIEXA   (19.05.2005 в 00:56)
 

Я так понимаю тебе нужен обработчик для смс сообщений, напиши, что тебе конкретно приходит в хмл формате и что нужно сделать или отдать системе.. недавно писал подобный скриптюю может удастся помочь тебе.

   
 
 автор: cheops   (19.05.2005 в 12:56)   письмо автору
 
   для: JIEXA   (19.05.2005 в 00:56)
 

Просто руки пока не дошли :)))

   
 
 автор: JIEXA   (20.05.2005 в 19:35)   письмо автору
 
   для: cheops   (19.05.2005 в 12:56)
 

Как дайдут - ответьте плз :)

   
 
 автор: cheops   (20.05.2005 в 23:56)   письмо автору
 
   для: JIEXA   (18.05.2005 в 20:04)
 

Посмотрите пример в архиве. Процесс создания постраничной навигации описывается в статье по ссылке http://www.softtime.ru/info/articlephp.php?id_article=33

   
 
 автор: JIEXA   (21.05.2005 в 00:08)   письмо автору
 
   для: cheops   (20.05.2005 в 23:56)
 

Так я имел ввиду как из получившего массива вывести правильно инфу. И как потом это разделаить на страницы, так как с MySQL я знаю как сделать постраничную навигацию, а вот в массивах ещё нет. Я прмерно дгадываюсь как, но все таки интересно, что вы предложите.
зы: в архиве ведь парсер, каторый все данные xml преобразовывает в массивы, но примеров, как потом с этим сложным массивом работать там вроде нет, или я что-то не увидел?

   
 
 автор: cheops   (21.05.2005 в 12:14)   письмо автору
 
   для: JIEXA   (21.05.2005 в 00:08)
 

Хм... дело не хитрое, точно так же как и в постраничной навигации с использованием MySQL, необходимо вычислить общее число позиций в массиве при помощи функции count(), через параметр передать начало вывода $begin и если число позиций на странице равно $pnumber, то постраничная навигация может выглядеть так
<?php
  
for($i $begin$i $begin $pnumber$i++)
  {
     
// Вывод
  
}
?>

   
 
 автор: JIEXA   (22.05.2005 в 00:28)   письмо автору
 
   для: cheops   (21.05.2005 в 12:14)
 

Я как почти так и думал :))). А вот насчет вывода этого сложного массива в виде инфы, вы мне так и не сказали :(((. Точнее, если не сложно, то прочитайте внимательно мои прошлые посты в этой теме :))).
P.S. Удачи всем выпускникам в этом году, и мне тоже, я наконец то заканчиваю 9-й класс :)

   
 
 автор: cheops   (22.05.2005 в 11:18)   письмо автору
 
   для: JIEXA   (22.05.2005 в 00:28)
 

Хм... ну я как раз об выводе и толкую :))) В каком виде должен он происходить - должны выводится телефоны или мелодии?

   
 
 автор: JIEXA   (22.05.2005 в 11:30)   письмо автору
 
   для: cheops   (22.05.2005 в 11:18)
 

Должны выводится мелодии. А телефоны пока выводить не нужно...

   
 
 автор: JIEXA   (23.05.2005 в 19:41)   письмо автору
 
   для: JIEXA   (22.05.2005 в 11:30)
 

?

   
 
 автор: cheops   (24.05.2005 в 01:05)   письмо автору
 
   для: JIEXA   (23.05.2005 в 19:41)
 

Можно поступить примерно так, как в скрипте в аттаче...

   
 
 автор: JIEXA   (24.05.2005 в 19:16)   письмо автору
 
   для: cheops   (24.05.2005 в 01:05)
 

ВО! теперь уже мне понятно. Все тему закрывайте, если будут вопросы, то я новую создам...

   
 
 автор: JIEXA   (18.05.2005 в 01:07)   письмо автору
 
   для: cheops   (17.05.2005 в 12:49)
 

на всякий случай подниму наверх, чтобы не забыли )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования