Перейти к содержанию
СофтФорум - всё о компьютерах и не только

геймерам нужна помощь


Рекомендуемые сообщения

Доброго времени суток! В рунете существует такая онлайн игра как Герои Войны и Денег http://www.heroeswm.ru/.

В ней есть возможность создания кланов - сообществ игроков. 2 месяца назад моя девушка создала клан, а я на юкозе (на бесплатном хостинге) сделал сайтик этого клана http://federation-clan.clan.su/. За два месяца мы добились больших успехов, нас (соклановцев) стало более 100 человек. Наши конкуренты (старые кланы) на своих сайтах вывесили рейтинги своих соклановцев, полную статистику по своим персонажам, их характеристики из этой онлайн игры. На мои просьбы поделиться кодом увязки с сайтом онлайн игры все отвечают отказом (конкуренция всё-таки). Обращаюсь к вам с просьбой помочь в коде. Пример статистики конкурентов здесь http://www.ordenmira.ru/index.php?pid=156. Соклановцы меня замучили с просьбами о таком же чуде... Сам я только учусь веб-программированию... Если это очень сложно - пропустите этот топик, не упрекайте в тунеядстве, не говорите что такой труд стоит денег - я всё понимаю. Но если кто-нибудь решит помочь на пионерских началах буду очень рад и признателен. С уважением, юзер онлайн игрушек...

Ссылка на комментарий
Поделиться на другие сайты

Я так понимаю, игра браузерная?

Обычно в таких случаях статистика извлекается со страниц самой игры (страница инфы о персе и т.д.) путем парсинга (разбора на составляющие и выделения значимых частей) html кода данных страниц.

Ваш хостинг должен предоставлять библиотеку curl или socket для php (на бесплатных в большинстве случаев отсутствует) иначе это технически не возможно.

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

Хотя работа не столько сложная, сколько нудная.

Вот если решитесь писать сами насчет азов могу просвятить бесплатно, в данный момент, извеняюсь, но нет времени :(

Ссылка на комментарий
Поделиться на другие сайты

На форуме уже спрашивал... Мне ответили, что нужно обращаться к тем, кто это уже сделал... От них отказ.

Лорд Дмитрий: , я был бы рад вашей помощи! Я не хочу никого принуждать к нудной работе, просто дайте хотябы алгоритм действий. Я быстро учусь, тем более мне это интересно! Вообще реально за малые сроки освоить азы?

Ссылка на комментарий
Поделиться на другие сайты

Vitasiiik:

Во-первых, если Вы еще не знакомы, то придется охнакомится с регулярными выражениями, так как весь парсинг осуществляется спомощью них. Для этого можно ознакомится со следующими страницами документации:

http://ru2.php.net/manual/ru/regexp.reference.php

http://ru2.php.net/manual/ru/function.preg-match.php

Во-вторых, придется изучить html код тех страниц, которые мы будем парсить. И желательно изучить несколько экзэмпляров, хотя все они наверняка строятся по одному шаблону, наша задача выявить именно то общее в этом шаблоне, по которому мы сможем искать наши данные.

Чтобы было понятнее, рассмотрим пример. Допустим, мы хотим получить из страницы инфы о пользователе его уровень.

Загрузим несколько персов себе и сохраним их инфу в виде html. Откроем их в текстовом редакторе (например в notepad++ там есть подсветка кода, что делает его более читабельным)

Ищем нашу заветную цифру и окружающий ее код.

Допустим мы нашли вот такие фрагменты кода:

Для перса 3 уровня:

<div id="level">3</div>

Для перса 7 уровня:

<div id="level">7</div>

Для перса 15 уровня:

<div id="level">15</div>

Пусть в нашей игре будет не более 99 уровней, то есть искомые числа будут однозначными и двухзначными

Первым делом убеждаемся, что <div id="level"> встречается в страницах только один раз и есть во всех страницах (лучше проверить 15-20 случайно выбраных страниц), если это не так, то придется взять больше кода для анализа

Собственно ищем одно- или двухзначное число заключенное в данный тег.

Пусть наша страница будет загружена целиком в переменную $html и передана некоторой функции парсеру

как это сделать, читаем документацию по curl: http://ru2.php.net/manual/ru/book.curl.php

Вот код функции:

function parse_level($html){ @preg_match('/<div id="level">([0-9]{1,2})<\/div>/i', $html, &$m) or return false; return (int)$m[1];}

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

Удачи! Если что обращайтесь

Ссылка на комментарий
Поделиться на другие сайты

Лорд Дмитрий:

А вы знакомы с PHP Simple HTML DOM Parser? Мне кажется, начинающему будет на порядок проще пропарсить страницу с ее помощью, чем разбираться в регулярных выражениях.

Ссылка на комментарий
Поделиться на другие сайты

Varyag: Незнаком, и вообще являюсь противником различных фреймворков :1eye:

А знание регулярных выражений в жизни php-программиста пригодятся

Ссылка на комментарий
Поделиться на другие сайты

Огромное спасибо! Лорд Дмитрий: , я уже ознакомился с регулярными выражениями! Благодаря вашему первому ответу, где вы упомянули слово "парсинг" я полез в поисковик и узнал многое про этот термин... там и столкнулся с регулярными выражениями, перечитал массу статей и практически во всём разобрался. Очень удобная штука preg_match оказывается!!! И код очень простенький! Находим название переменной, отыскиваем её между определёнными выражениями и дело в шляпе!!! Юкоз не поддерживает пхп - не беда, сделаем ссылочку на страничку от хостинга поддерживающего пхп!!! А на самом деле мне очень приятно, что я попал на ваш форум и не услышал, что с меня 100$, что это очень трудно... Спасибо Вам, что подтвердили мои догадки с кодом!

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...