[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: dle...
Страницы: 1, 2, 3, 4
uMnepaTop
Да не)
Проблема была только 1) Выбрать между тегами инфу и сунуть в ссылку...
А теперь еще проблем навалилось с таким "сумашедшим" кодом, я не знаю что и думать даже))
Хоть йад пойти пить))
PandoraBox2007
ладно сейчас переработаю ...
uMnepaTop
Если не сложно... Просто я с тем, что было 2 дня возился, а тут еще стОолько кода появилось, что я уже не в силах что-либо изменить)
PandoraBox2007
функции
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'];


правда можно было и лучше и на том не похо.. wink.gif
Быстрый ответ:

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