uMnepaTop
11.07.2009 - 02:27
Да не)
Проблема была только 1) Выбрать между тегами инфу и сунуть в ссылку...
А теперь еще проблем навалилось с таким "сумашедшим" кодом, я не знаю что и думать даже))
Хоть йад пойти пить))
PandoraBox2007
11.07.2009 - 02:41
ладно сейчас переработаю ...
uMnepaTop
11.07.2009 - 02:47
Если не сложно... Просто я с тем, что было 2 дня возился, а тут еще стОолько кода появилось, что я уже не в силах что-либо изменить)
PandoraBox2007
11.07.2009 - 03:12
функции
PHP |
function combats_get_info($content) { if ($content != "") // strlen($content) > 0 { $data = array(); preg_match("#id=(.*)#i", $content, $data['id']); $data['id'] = $data['id'][1]; preg_match("#login=(.*)#i", $content, $data['login']); $data['login'] = $data['login'][1]; preg_match("#align=(.*)#i", $content, $data['align']); $data['align'] = $data['align'][1]; preg_match("#gamecity=(.*)#i", $content, $data['gamecity']); $data['gamecity'] = $data['gamecity'][1]; preg_match("#gamecity_url=(.*)#i", $content, $data['gamecity_url']); $data['gamecity_url'] = $data['gamecity_url'][1]; preg_match("#level=(.*)#i", $content, $data['level']); $data['level'] = $data['level'][1]; preg_match("#klan=(.*)#i", $content, $data['klan']); $data['klan'] = $data['klan'][1]; return $data; } else { return NULL; } }
function combats_BB_Parse($source, $timeout_url = "30") //, $use_html = TRUE { preg_match_all("/\[pers\](.*)\[\/pers\]/Uis", $source, $data); // Парсим все что встречается с [pers]*[/pers] без учета регистра и без новой строки $data_count = count($data[1]); // узнаем количество отпарсенных и найденных елементов
$so = $info = array(); // задаем переменную в массив for ($i = 0; $i < $data_count; $i++ ) // Цикл { $login['name'] = strtolower($data[1][$i]); // Регистр маленький для никнеймов с выдернутого тега (тегов) if ( !empty($login['name']) ) // если переменная не пустая { // echo "<p>{$login['name']}</p>"; // Тест $urls = "http://demonscity.combats.com/inf.pl?login={$login['name']}&short=1"; // устанавливаем значение переменной $url_options = array( // Параметры соединения 'http' => array('timeout' => (int) $timeout_url) ); if (!$contents = @file_get_contents($urls, 0, stream_context_create($url_options))) // ожидаем завершения continue; // время ожидание от сервера закончилось переходим к следующей цели или заканчиваем цикл //$contents = file_get_contents($urls); $info = $this->combats_get_info($contents); // парсим данные $so[$login['name']] = $info; // записываем в массив $so отпарсенные на строчку выше данные } } unset($data, $data_count); // очищаем память от неиспользуемых переменных return $so; // возвращаем результат функции } |
Работа функций:
PHP |
$result_combats = array(); $result_combats = combats_BB_Parse('[pers]Red[/pers], [pers]Silver[/pers]'); // через класс там подключи
foreach ($result_combats as $nik => $data) { // Для показа примера вывода данных echo "<div>Nik: $nik</b>: ".var_export($data, true)."</div><hr>";
с массива $data можеш получать данные (Пример): $data['id']; $data['login']; $data['align']; $data['gamecity']; $data['gamecity_url']; $data['level'] $data['klan']; }
без цикла (Пример): $data['red']['id']; $data['red']['login']; $data['red']['align']; $data['red']['gamecity']; $data['red']['gamecity_url']; $data['red']['level'] $data['red']['klan']; |
правда можно было и лучше и на том не похо..
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.