Значит в стимид используются символы-разделители. В принципе, такие задачи лучше регулярными выражениями делать, просто я сразу не подумал, что в steamid и username допустимы символы | и -. Кстати, ; тоже разрешена? скинь мне лог-файл, который вызывает косяки.
Все, я понял в чем дело. Щас сделаю. Добавлено спустя 27 минут 12 секунд: Пробуй! Код (Text): <?php mysql_connect("localhost", "root", ""); mysql_select_db("one"); $f = fopen('allinfo_players.txt', 'r'); $sql = array(); while(!feof($f)) { $row = fgets($f); //var_dump($row); if((strlen($row)==2)||!$row) continue; $data = explode("|", $row); if(count($data)>3) { for($i=0; $i<count($data)-3; $i++) { $data[0].="|".$data[$i+1]; } $data[1]=$data[count($data)-2]; $data[2]=$data[count($data)-1]; } $date_time_and_username_src = $data[0]; $date_time = explode("-", $date_time_and_username_src); $date = substr($date_time[0], 2); if(count($date_time)>2) { for($i=2; $i<count($date_time); $i++) { $date_time[1].="-".$date_time[$i]; } } $time_username = $date_time[1]; $time_username = explode(":", $time_username); $h = trim($time_username[0]); $m = trim($time_username[1]); $s = trim($time_username[2]); $username = trim($time_username[3]); $date = explode("/", $date); $y = trim($date[2]); $month = trim($date[0]); $d = trim($date[1]); $sid = substr($data[1], 9); $ip = explode(":", $data[2]); $sid = trim($sid); $ip = trim($ip[1]); echo "Год ".$y."<br>"; echo "Месяц ".$month."<br>"; echo "Число ".$d."<br>"; echo "Часов ".$h."<br>"; echo "Минут ".$m."<br>"; echo "Секунд ".$s."<br>"; echo "Пользователь ".$username."<br>"; echo "STEAMID ".$sid."<br>"; echo "IP ".$ip."<br>"; echo "<hr>"; $sql[] = '("'.$y.'-'.$month.'-'.$d.' '.$h.':'.$m.':'.$s.'", "'.$username.'", "'.$sid.'", "'.$ip.'")'; } fclose($f); echo implode(',', $sql); mysql_query('INSERT INTO tbl_logs (log_date, username, steamid, hostname) VALUES'.implode(',', $sql)); ?>
Еще вопрос созрел, основываясь на надписи в базе возможно ли сделать вывод картинки с аналогичным названием из определенной папки? Например в базе существует в определенном месте название "de_dust2" кодом я вывел Код (Text): // Функция онлайн оффлайн сервера error_reporting(0); $IP = array( "109.197.254.86:27015 [6stPROD]: " => "109.197.254.86:27015", ); while(list($ServerName,$Host)=each($IP)) { list($IPAddress,$Port)=explode(":",$Host); echo $ServerName; if ($fp=fsockopen($IPAddress,$Port,$ERROR_NO,$ERROR_STR,(float)0.5)) { echo("<font color='green'> Online </font><br>"); fclose($fp); // вывод данных о карте сервера с базы $sdd_db_host='localhost';// ваш адрес где находится, хостится ваша база данных $sdd_db_name='sts';// Имя базы данных с которой вы хотите работать, так как их может быть множество $sdd_db_user='root';// логин доступ к базе данных $sdd_db_pass='';// пароль доступа к базе данных @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером @mysql_select_db($sdd_db_name);// переключаемся на нужную нам базу данных $result=mysql_query('SELECT * FROM `sts` ORDER BY id DESC LIMIT 1');// делаем выборку из таблицы while($row=mysql_fetch_array($result)) { echo '<p>Карта : <font color="green">'.$row['map'].'</font></p>'; // выводим данные } } else { echo ("<font color='red'> Offline </font><br>"); } } Читается - пока порт сервера отвечает из таблицы показывать последнюю строчку из столбика "map" Как добавить сюда - например - пока порт сервера отвечает из таблицы показывать последнюю строчку из столбика "map" и (папка с картинками) название карты.png ??? Есть варианты?
Ну да, можно, если я правильно понял. Например, $row['map'] = 'http://site.com/img/maps/map1.png' вместо Код (Text): echo '<p>Карта : <font color="green">'.$row['map'].'</font></p>'; // выводим данные пишем Код (Text): echo '<img src=" '.$row['map'].' " class="css_class_you_like">'; Т.е. просто в атрибут srс тега img подставляем значение из таблицы БД, которое является адресом изображения. Будет отображаться картинка вместо названия карты. Это имелось в виду? Добавлено спустя 2 минуты 40 секунд: А вообще запрос в цикле - это очень-очень неправильно. Вынеси его из тела цикла. Добавлено спустя 10 минут 3 секунды: Вот это должно стоять до while. Код (Text): $sdd_db_host='localhost';// ваш адрес где находится, хостится ваша база данных $sdd_db_name='sts';// Имя базы данных с которой вы хотите работать, так как их может быть множество $sdd_db_user='root';// логин доступ к базе данных $sdd_db_pass='';// пароль доступа к базе данных @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);// устанавливаем связь с сервером @mysql_select_db($sdd_db_name);// переключаемся на нужную нам базу данных $result=mysql_query('SELECT * FROM `sts` ORDER BY id DESC LIMIT 1');// делаем выборку из таблицы
Имелось ввиду это ) но структура таблицы мне не позволит На сервере стоит плагин, информация заливается именно из него а конкретно ID.. MAP... и тд То есть мне просто не засунуть туда информашку о картинке карты На счет этого кода Код (Text): echo '<img src=" '.$row['map'].' " class="css_class_you_like">'; В классе то я пропишу картинку, но мне кажется она будет одна и та же вне зависимости от названия карты Функцию я думаю надо поставить так чтобы она искала в папке с картинками точное название карты, выводящейся в данный момент и выводила ее на страничку Добавлено спустя 12 минут 55 секунд: В принципе код на картинку работает, выдает правильное название, но без расширения ) а вот как в пхп коде вставить таблицу стилей и код картинки ) я еще не придумал ) Добавлено спустя 2 минуты 33 секунды: Код (Text): echo '<p>Карта : <font color="green">'.$row['map'].'</font></p>'; echo '<img src=" '.$row['map'].' " map">'; // выводим данные На данный момент стоит так.....картинку не показывает, ссылаясь на домен и название мапы после слеша...как вот путь до картинки указать ) по названию? ) Добавлено спустя 5 минут 18 секунд: Код (Text): echo '<img src="img/map/'.$row['map'].'.png " class="map">'; // выводим данные Все сделано )) я добавил путь и вконце вывадимого названия приписал расширение )) теперь все в ажуре )
Код (PHP): <?php $f=file('txt.txt'); for($i=0;$i<sizeof($f);++$i) { $ex=explode('|',$f[$i]); for($l=0;$l<sizeof($ex);++$l) { $e=explode(':',$ex[$l]); $e=$e[sizeof($e)-1]; echo nl2br($e.' '); } } ?> Код можно доработать, и отделить части если потребуются. Но ни как не этот хлам говна, что дали выше... =(
Ты не прав! Есть, конечно, пара моментов, которые можно переделать и убрать кучу переменных, которые я вводил для наглядности, тогда код уменьшится вдвое. Но в целом, все хорошо. И не забудь, что в юзернэйм и стимид могут встречаться символы |,- и :