[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: while и увеличение переменной
Agahnim
Добрый вечер, товарищи знатоки. Я опять с очередным вопросом.

Я парсю большой XML архив со множеством итемов.

Допустим я получаю отдельную строку так:
echo $item->cat[0]->title;

но вот таких вот cat у меня имеется 100 штук.
Я задумался над автоматизацией вывода всех титлов архива путем
бесконечного while в конце каждого из которых к cat[0] будет прибавлятся еденица.
Но вот в чем загвоздка - во первых я не знаю как это собственно сделать.
А во вторых - мне надо както остонавить while если null(cat[$n]) .

Есть ли какие нибудь более цивилозованые способы кроме вайла, и если нет, как можно осуществить увеличение значения и остановку вайла?



Спустя 7 минут, 15 секунд (17.08.2011 - 19:27) neadekvat написал(а):
Че-т я не понял. Если нужно перебрать массив, то используй foreach:
foreach($item->cat as $val)
echo $val->title;

Если нужно что-то другое - опиши подробнее.

Спустя 4 минуты, 11 секунд (17.08.2011 - 19:31) Agahnim написал(а):
$sxml = simplexml_load_file('whatever.url.i.whant') or die('Could not load file');
foreach ($sxml->channel as $item) {
$yid1 = mb_substr($item->item[0]->guid, 42, 300, 'UTF-8');
echo "<table border='0'><tr><td><img width='90' src='vi/$yid1/0.jpg'></td><td>";
echo '<font size="4"><b><a target="_blank" href="' , $item->item[0]->link , '">', $item->item[0]->title ,'</a></b></font><br>';
echo '<font size="2">',$item->item[0]->description,'</font><br>';
echo '<font size="1" color="grey">',$item->item[0]->pubDate,'</font></td></tr></table><hr>';
echo "<iframe width='100%' height='349' src='ed/$yid1' frameborder='0' ></iframe>";
echo '<br>';
$yid2 = mb_substr($item->item[1]->guid, 42, 300, 'UTF-8');
echo "<table border='0'><tr><td><img width='90' src='vi/$yid2/0.jpg'></td><td>";
echo '<font size="4"><b><a target="_blank" href="' , $item->item[1]->link , '">', $item->item[1]->title ,'</a></b></font><br>';
echo '<font size="2">',$item->item[1]->description,'</font><br>';
echo '<font size="1" color="grey">',$item->item[1]->pubDate,'</font></td></tr></table><hr>';
echo "<iframe width='100%' height='349' src='ed/$yid2' frameborder='0' ></iframe>";
echo '<br>';
# ... +100
}

а теперь представим что мне таким образом нужно вывести 100 айтемов. Нужны способы автоматизации. Так понятнее?

Тоесть -
while ($sxml) {
$yid1 = mb_substr($item->item[$n]->guid, 42, 300, 'UTF-8');
echo "<table border='0'><tr><td><img width='90' src='http://i.ytimg.com/vi/$yid1/0.jpg'></td><td>";
echo '<font size="4"><b><a target="_blank" href="' , $item->item[$n]->link , '">', $item->item[0]->title ,'</a></b></font><br>';
echo '<font size="2">',$item->item[$n]->description,'</font><br>';
echo '<font size="1" color="grey">',$item->item[$n]->pubDate,'<nt></td></tr></table><hr>';
echo "<iframe width='100%' height='349' src='http://www.youtube.com/embed/$yid1' frameborder='0' ></iframe>";
echo '<br>';
}

с каждым проходом вайла увеличивая $n на один.

Спустя 2 минуты, 50 секунд (17.08.2011 - 19:34) neadekvat написал(а):
И чем не подходит foreach (да, второй, вложенный)?

Спустя 2 минуты, 6 секунд (17.08.2011 - 19:36) Agahnim написал(а):
тем что у меня не 1 cat а 100
cat[1]
cat[2]
cat[3]
...
cat[99]
cat[100]

Спустя 2 минуты, 11 секунд (17.08.2011 - 19:38) Agahnim написал(а):
Так, туплю. Спасибо.

Спустя 34 секунды (17.08.2011 - 19:39) neadekvat написал(а):
Так и что меняется то?
foreach ($sxml->channel as $item) {
foreach($item as $iteme_2) {
$yid = mb_substr($iteme_2->guid, 42, 300, 'UTF-8')''
echo "<table border='0'><tr><td><img width='90' src='vi/"$yid"/0.jpg'></td><td>";
echo '<font size="4"><b><a target="_blank" href="' , $iteme_2->link , '">', $iteme_2->title ,'</a></b></font><br>';
echo '<font size="2">',$iteme_2->description,'</font><br>';
echo '<font size="1" color="grey">',$iteme_2->pubDate,'</font></td></tr></table><hr>';
echo "<iframe width='100%' height='349' src='ed/$yid' frameborder='0' ></iframe>";
echo '<br>';
}
}


Ну дай-то бог)

Спустя 3 минуты, 8 секунд (17.08.2011 - 19:42) Agahnim написал(а):
Сказал же - туплю. Спасибо.

Спустя 2 минуты, 16 секунд (17.08.2011 - 19:44) neadekvat написал(а):
Цитата (Agahnim @ 17.08.2011 - 20:42)
Сказал же - туплю.

Я не за минуту написал пост - не удалять же его.
К тому же, форум тем полезен, что на темы выходят из поисковиков. Вы-то поняли, а вдруг придет кто-то, кто еще не понял. Посмотрет код - и поймет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.