Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2012, 16:02   #1
Green4el
Форумчанин
 
Регистрация: 16.04.2012
Сообщений: 146
По умолчанию XML и сравнение чисел

PHP код:
<?php
$xmlfile 
= ("некий xml");
$xml simplexml_load_file($xmlfile);

echo 
'<body bgcolor="#daf6ab">';
foreach (
$xml->schedule->pack as $prog) :
if (
$xml->schedule->pack->abstime >= $xml->current->servertime) {
echo 
'<p><b>'.$prog->time.'</b>&nbsp;';
echo 
$prog->title.'<br />';
echo 
'<i>'.$prog->descr.'</i>';
echo 
'</p>'; }
endforeach;
echo 
'</body>';
?>
Задача в том, чтобы сравнивать два числа из XML и при выполнение условия, что одно больше другого, выводить текущие данные. Скрипт не работает почему-то...
Green4el вне форума Ответить с цитированием
Старый 06.11.2012, 16:28   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Green4el Посмотреть сообщение
Скрипт не работает почему-то...
Нужно вывести на экран сравниваемые значения – и посмотреть, будет ли выполняться это условие в коде при таких значениях.
Andkorol вне форума Ответить с цитированием
Старый 06.11.2012, 16:34   #3
Green4el
Форумчанин
 
Регистрация: 16.04.2012
Сообщений: 146
По умолчанию

1352145600000 servertime
1352205208000 abstime

Последний раз редактировалось Green4el; 06.11.2012 в 16:40.
Green4el вне форума Ответить с цитированием
Старый 06.11.2012, 16:47   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

Код:
if ((int)$xml->schedule->pack->abstime >= (int)$xml->current->servertime) {
а если так?
ADSoft вне форума Ответить с цитированием
Старый 07.11.2012, 21:30   #5
Green4el
Форумчанин
 
Регистрация: 16.04.2012
Сообщений: 146
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Код:
if ((int)$xml->schedule->pack->abstime >= (int)$xml->current->servertime) {
а если так?
Спасибо! Так работает. Не знал про (int) (string).
Green4el вне форума Ответить с цитированием
Старый 08.11.2012, 11:43   #6
Green4el
Форумчанин
 
Регистрация: 16.04.2012
Сообщений: 146
По умолчанию

Ерунда... Скрипт считает, но не выполняет задуманного мной действия. Суть в том, чтобы начать отображать время (там много значений) в цикле только с момента выполнения условия. А в итоге ничего не отображается.

Последний раз редактировалось Green4el; 08.11.2012 в 11:48.
Green4el вне форума Ответить с цитированием
Старый 08.11.2012, 12:05   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

ну тут как бы правильно сказать.... для таких целей чистый php не годится.
То же самое что в бесконечном цикле выводить счетчик... пхп просто висанется
.. для "реалтайма" отображения - нужно юзать Ajax, для планирования задач - крон
ADSoft вне форума Ответить с цитированием
Старый 08.11.2012, 12:11   #8
Green4el
Форумчанин
 
Регистрация: 16.04.2012
Сообщений: 146
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
ну тут как бы правильно сказать.... для таких целей чистый php не годится.
То же самое что в бесконечном цикле выводить счетчик... пхп просто висанется
.. для "реалтайма" отображения - нужно юзать Ajax, для планирования задач - крон
Код:
<recipe>
<streamer>yellow.ether.tv</streamer>
<vodlist>...</vodlist>
<channels>...</channels>
<current>
<title>
<![CDATA[ Слайдшоу общее_Грибы и глюки ]]>
</title>
<descr>
<![CDATA[ Грибалка. Сезоны 2010 и 2011 ]]>
</descr>
<servertime>1352199025000</servertime>
<fid>1210811512</fid>
<bid/>
<start>1352198791000</start>
<dur>1800000</dur>
<fstart>1352198791000</fstart>
<fdur>1800000</fdur>
</current>
<schedule>
<pack>
<date>9999-01-01</date>
<time>00:00:00</time>
<abstime>1352145600000</abstime>
<title>
<![CDATA[ Заставка ]]>
</title>
<descr>
<![CDATA[ ]]>
</descr>
<bid/>
<fid>1210810604</fid>
<vod/>
</pack>
Кусочек xml. Там программа передач онлайн-тв. Есть блок вещания 8-часовой. А в xml выводится сразу на 24 часа с повторением сетки. Задача - начать отображение программы с текущей передачи и далее. Время запуска передачи определяется переменной abstime. В теории нужно сравнить время запуска передачи с серверным временем. Если abstime > servertime, значит мы нашли нужную точку отсчета, с этого момента должен работать цикл. Неужели без ajax я не смогу реализовать задуманное?
Green4el вне форума Ответить с цитированием
Старый 08.11.2012, 13:32   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

if ($prog->abstime >= тут ваша точка отсчета, например $q, где $q=mktime()) {

иначе он всегда только первую запись смотрит

Последний раз редактировалось ADSoft; 08.11.2012 в 13:38.
ADSoft вне форума Ответить с цитированием
Старый 08.11.2012, 13:51   #10
Green4el
Форумчанин
 
Регистрация: 16.04.2012
Сообщений: 146
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
if ($prog->abstime >= тут ваша точка отсчета, например $q, где $q=mktime()) {

иначе он всегда только первую запись смотрит
PHP код:
foreach ($xml->schedule->pack as $prog) :
if (
$prog->fid == '1210810604' { echo ''; } else {
echo 
'<p><b>'.$prog->time.'</b>&nbsp;-&nbsp;';
echo 
$prog->title;
echo 
$prog->fid;
echo 
'</p>'; }
endforeach; 
Решил пойти другим путём, выдавать весь список разом. Единственное, нужно исключать отображение строки с определенном id. В итоге этот код выдает белый лист (не работает). С чем может быть связано? Подстановки int string делал.

Последний раз редактировалось Green4el; 08.11.2012 в 13:57.
Green4el вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение вещественных чисел. _PROGRAMM_ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 20.09.2012 22:47
Сравнение вещественых чисел DuBy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 01.06.2011 21:51
Сравнение двух чисел Ardarik Общие вопросы C/C++ 2 16.01.2011 23:49
Сравнение 2-х рациональных чисел ManCOM Python 3 06.01.2011 13:10
Сравнение чисел Draips Помощь студентам 2 17.06.2010 16:51