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

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

Ответ
Опции темы
Непрочитано 07.05.2012, 19:13   #31
Герой

Автор темы (Топик Стартер) Re: Парсер xml'ки

Все же пришлось модифицировать свое решение. Т.к. ваши не учитывают следующий нюанс: в бд есть тег со спойлом, на данный момент его учитывать не нужно. Ну и исправить не вышло
Код:
<rewardlist type="SWEEP">
			<reward item_id="960" min="1" max="1" chance="0.5298" />	<!--Scroll: Enchant Armor (S-Grade)-->			
</rewardlist>
Но все равно всем спасибо за помощь.
Shayne вне форума Отправить сообщение для Shayne с помощью Skype™ Ответить с цитированием
Непрочитано 10.07.2012, 17:58   #32
Аватар для Pocan
Пользователь

По умолчанию Re: Парсер xml'ки

Цитата:
Сообщение от Shayne Посмотреть сообщение
Благодарствую

Добавлено через 1 час 17 минут
PHP код:
<?php
set_time_limit
(900);
$xml simplexml_load_file('1c.xml');
$xml2 simplexml_load_file('ItemName-e.xml');

foreach(
$xml->npc as $npcElement

    
$npcId = (string)$npcElement["id"]; 
    foreach(
$npcElement->rewardlist as $rewardListElement
    { 
        foreach(
$rewardListElement->group as $groupElement
            {
                
$gChance = (string)$groupElement["chance"]; 
                foreach(
$groupElement->reward as $rewardElement
                { 
                    
$rewardID = (string)$rewardElement["item_id"];
                    foreach(
$xml2->data as $data)
                    {
                            foreach(
$data->item as $itemm)
                            {
                                foreach(
$data->name as $namee
                                {
                                if (
$itemm["id"]==$rewardID)
                                    
$item=$namee ["value"];
                                }
                            }
                    }
                    
$rewardMIN = (string)$rewardElement["min"]; 
                    
$rewardMAX = (string)$rewardElement["max"]; 
                    
$rewardCHANCE = (string)$rewardElement["chance"]; 
                    
$endCHANCE=0.9999;
                    
$endCHANCE$gChance/100*$rewardCHANCE;
                    
printf("%d&nbsp&nbsp&nbsp&nbsp&nbsp%s&nbsp&nbsp&nbsp&nbsp&nbsp%d-%d&nbsp&nbsp&nbsp&nbsp&nbsp[%6.4f xx]</br>",$npcId$item$rewardMIN$rewardMAX,$endCHANCE);
                } 
            } 
    } 

?>
307 строк выдает за 240 сек. это Т_Т
Слишком много "циклов в цикле в цикле", тем более через foreach.
При использовании simplexml_load_file() мы же получаем массив из xml'ки.
Почему бы не воспользоваться перебором через for, что определенно даст выигрыш во времени генерации результата, и обращаться непосредственно к массиву, изначально полученному из файла(ов).

Цитата:
PHP код:
$npcId = (string)$npcElement["id"]; 
Если пользоваться приведением типов, то, я думаю, тогда нужно к числу приводить, а не к строке. Или не приводить вообще ни к чему, PHP сам это сделает.
PHP код:
$npcId = (int)$npcElement["id"]; 
и все остальные переменные аналогично...
Pocan вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсер для AION zorgtm Серверная часть 41 30.09.2013 17:53
Java Mmotops парсер Хлорка Lineage II 1 08.04.2012 23:20
Парсер email ruslanback Курилка / Yak floor 17 26.03.2012 23:08


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

Вверх