Заковыка с переменными внутри цикла. - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > PHP

PHP Форум как для начинающих программистов на PHP так и для профессионалов этого дела. Если нужно создать скрипт, функцию и т.д, но не знаете как, спросите у нас и мы вам подскажем. Здесь вы найдете примеры скриптов которые вы сможете использовать на сайтах своих серверов (онлайн, регистрация, семь печатей, топ игроков). Так же много книг и статей.

Ответ
Опции темы
Непрочитано 03.09.2011, 11:14   #1
Аватар для Aristocrat
Мастер

Автор темы (Топик Стартер) Заковыка с переменными внутри цикла.

Уважаемые форумчане.

Нужда заставила писать себе парсер XML на PHP.
Парсер должен, в итоге, разбирать скормленный ему XML по частям, подставлять в нужные части загруженые из MySQL данные и генерировать на выходе HTML страницу с этим измененным XML.

Нашел парсер, который просто разбирает и выводит 1 в 1 XML через HTML.

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

Имеется следующий проблемный код.

PHP код:
function startElement($parser$name$attribs
{
    echo 
"&lt;<font color=\"#0000cc\">$name</font>";
    if (
count($attribs)) {
        
$f "12345-6;";

        foreach (
$attribs as $k => $v) {
            if (
$k == "id") {
                
$f $v;
            }
            if (
$v == "skill") {
                echo 
" <font color=\"#009900\">$k</font>=\"<font 
                        color=\"#ff0000\">
$v</font>\"";
                echo 
" <font color=\"#009900\">val</font>=\"";
                echo 
"<font color=\"#ff0000\">$f</font>\"";
                break;
            }
            else {
                echo 
" <font color=\"#009900\">$k</font>=\"<font 
                        color=\"#990000\">
$v</font>\"";
            }
        }
    }
    echo 
"&gt;";

который превращает строки:
Цитата:
<set name='weight' val='150' />
<set name='material' val='wood' />
<set name='crystal_type' val='none' />
<set name='sellable' val='false' />
<set name='dropable' val='false' />
<set name='skill' val='21045-1;3267-1;23051-1;' />
в
Цитата:
<set name='weight' val='150'>
<set name='material' val='wood'>
<set name='crystal_type' val='none'>
<set name='sellable' val='false'>
<set name='dropable' val='false'>
<set name='skill' val='12345-6;'>

Проблема в том, что код видит присвоение значения переменной только перед циклом, т.е
Код:
$f = "12345-6;";
В том время, как дополнительное условие внутри цикла foreach
Код:
                      if ($k == "id") {
				$f = $v;
			}
не видит. Подскажите, как мне можно при соблюдения условия, передать значение $f в строку
Цитата:
echo "<font color=\"#ff0000\">$f</font>\"";
С уважением.
Aristocrat вне форума Ответить с цитированием
Непрочитано 04.09.2011, 12:18   #2
Пользователь

По умолчанию Re: Заковыка с переменными внутри цикла.

для работы с XML пользуемся SimpleXML либо DOM
http://php.net/manual/en/book.simplexml.php
http://php.net/manual/en/book.dom.php
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа цикла PellePelle Курилка / Yak floor 7 07.07.2011 00:45


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 09:38. Часовой пояс GMT +3.

Вверх