Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/37: Рейтинг темы: голосов - 37, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43

Вывод данных из файла .log на html страницу

30.08.2012, 07:54. Показов 7920. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, хотел бы попросить помощи с реализацией одной идеи.
Мне нужно написать скрипт, который должен читать определённый .log файл,
брать от туда нужную информацию, и выводить это все дело на html страницу.

Например:
Содержание файла .log
C
1
[20.08.12 13:56:47] Player "KLEOS" (0110000100012e5c) got KICKED for reason: Ping
На html странице должны быть только
C
1
 "KLEOS"  Ping
Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2012, 07:54
Ответы с готовыми решениями:

Вывод данных с .log файла в таблицу php
ребята помогите зделать Есть лог в нем отображается: : ==> $MyINFO $ALL впро111 Kharkov<FlylinkDC++...

Из log файла сделать вывод на html страницу
Гуру php помогите и мне пожалуйста. необходимо из log файла сделать вывод на html страницу console.log ...

Вывод данных на HTML страницу
Здравствуйте, я практически полный ноль в JS/Nodejs пэтому подскажите пожалуйста, есть скрипт на стороне сервера, на котором устоновлен...

18
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2012, 08:08
PHP
1
2
3
4
5
6
7
8
$lines = file('log.log');
if (false === $lines)
    die('Не могу прочитать файл');
 
foreach ($lines as $line) {
    if (preg_match('/\\bPlayer\\s*("[^"]+").*\\breason:\\s*(.*)$/i', $lines, $match))
        echo $match[1], '  ', $match[2];
}
0
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 08:09  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
$lines = file('log.log');
if (false === $lines)
    die('Не могу прочитать файл');
 
foreach ($lines as $line) {
    if (preg_match('/\\bPlayer\\s*("[^"]+").*\\breason:\\s*(.*)$/i', $lines, $match))
        echo $match[1], '  ', $match[2];
}
Спасибо за столь оперативный ответ но,

C
1
Warning: preg_match() expects parameter 2 to be string, array given in D:\apache\htdocs\1.php on line 7
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2012, 08:11
В строке 6:
..., $lines $line, $match))
0
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 08:13  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
В строке 6:
..., $lines $line, $match))
Спасибо это то что нужно, ещё хотел спросить, можно ли выводить последние 5 строк например, или 10?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2012, 08:16
Цитата Сообщение от zmeik_a Посмотреть сообщение
можно ли выводить последние 5 строк например, или 10?
В строке 4 добавьте:
PHP
1
$lines = array_slice($lines, -10); # отрезать 10 с конца
0
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 08:26  [ТС]
Большое спасибо, наконец-то нашёлся человек, который разбирается в Php и реально может помочь.
Ещё есть вопрос, можно ли вставить вставлять данные вывода в html таблицу в каждую ячейку по одному значению.

То есть, выглядит это примерно так:
HTML5
1
2
3
4
5
6
<table>
         <tr>
            <td>Вот здесь собственно Ник (если я правильно понял это "$match[1]")</td>
            <td>Причина (а тут причина "$match[2]")</td>
         </tr>
 </table>
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2012, 08:28
PHP
1
2
3
4
5
6
echo '<table><tr><th>Player</th><th>Reason</th></tr>';
foreach ($lines as $line) {
    if (...)
        echo '<th><td>', htmlspecialchars($match[1]), '</td><td>', htmlspecialchars($match[2]), </td></tr>;
}
echo '</table>';
0
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 08:36  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
PHP
1
2
3
4
5
6
echo '<table><tr><th>Player</th><th>Reason</th></tr>';
foreach ($lines as $line) {
    if (...)
        echo '<th><td>', htmlspecialchars($match[1]), '</td><td>', htmlspecialchars($match[2]), </td></tr>;
}
echo '</table>';
syntax error, unexpected '.'
Ошибка в 14 строке, "if (...)".
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2012, 08:38
if тот же самый остаётся.
Вот в echo забыл кавычки:
PHP
1
... , '</td></tr>';
0
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 08:41  [ТС]
PHP
1
2
3
4
5
6
echo '<table><tr><th>Player</th><th>Reason</th></tr>';
foreach ($lines as $line) {
    if (...)
        echo '<th><td>', htmlspecialchars($match[1]), '</td><td>', htmlspecialchars($match[2]), </td></tr>;
}
echo '</table>';
Эту таблицу вставлять в скрипт? Вместо
PHP
1
echo $match[1], '  ', $match[2];
?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2012, 08:42
Цитата Сообщение от Vovan-VE Посмотреть сообщение
PHP
1
echo '<th><td>', ...
И тут надо tr вместо th:
PHP
1
echo '<tr><td>', ...
Добавлено через 43 секунды
Цитата Сообщение от zmeik_a Посмотреть сообщение
Эту таблицу вставлять в скрипт? Вместо
Разве сложно сравнить глазами два куска кода и вписать всё на свои места?
1
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 08:56  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
И тут надо tr вместо th:
PHP
1
echo '<tr><td>', ...
Добавлено через 43 секунды

Разве сложно сравнить глазами два куска кода и вписать всё на свои места?
Всё получилось спасибо, я просто затупил, хороший форум, решил свою проблему за 10 минут. Спасибо.

Добавлено через 6 минут

Добавлено через 3 минуты
Остался последний маленький вопросик, возможно что бы скрипт выбирал строки, то есть:

C
1
2
[20.08.12 22:01:33] Player "{THE}STAR" (0110000103badbad) got KICKED for reason: [Чит ВХ]
[20.08.12 22:48:28] Player "зїy" (01100001f8416f14) got BANNED for reason: [Чит ВХ]
Вот две строки одна с пометкой "KICKED" другая с "BANNED",
есть возможность чтобы выводились строки только с одной из пометок, что-то вроде фильтра.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2012, 09:52
Выражение заменить:
PHP
1
if (preg_match('/\\bPlayer\\s*("[^"]+").*\\bgot\\s+KICKED\\s+for\\s+reason:\\s*(.*)$/i',
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
30.08.2012, 09:53
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$text = '[20.08.12 22:01:33] Player "{THE}STAR" (0110000103badbad) got KICKED for reason: [Чит ВХ]
[20.08.12 22:48:28] Player "зїy" (01100001f8416f14) got BANNED for reason: [Чит ВХ]';
function foo($bar) {
global $text;
$arr = explode("\n",$text);
$str = '';
foreach($arr as $v) {
if(stripos($bar,$text)) $str .= $v."\n";
}
else $str = 'Не найдено';
return $str;
}
#вызываем
echo foo('kicked');

Не по теме:

это вариант без регулярок)

1
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 12:02  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Выражение заменить:
PHP
1
if (preg_match('/\\bPlayer\\s*("[^"]+").*\\bgot\\s+KICKED\\s+for\\s+reason:\\s*(.*)$/i',
Спасибо работает, но как ликвидировать пустое место?
Получается вот так:
C
1
2
3
4
5
Игрок: "MSI" забанен за : Camper 
Игрок: "NameHere" забанен за : Cheat
 
Игрок: "Gekkon" забанен за : Cheat WH
Игрок: "MOP030B" забанен за : Cheat WH
Добавлено через 1 час 30 минут
Ну есть варианты?
А то кое-где и по 20 строк белых.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
30.08.2012, 12:19
Цитата Сообщение от zmeik_a Посмотреть сообщение
PHP
1
echo '<th><td>', htmlspecialchars($match[1]), '</td><td>', htmlspecialchars($match[2]), </td></tr>;
заменить на
PHP
1
2
3
4
echo (!empty($match[1]) && !empty($match[2])) 
? '<tr><td>'.htmlspecialchars($match[1]).'</td><td>'.htmlspecialchars($match[2]).'</td></tr>'
: ((!empty($match[1]) && empty($match[2])) ? '<tr><td>'.htmlspecialchars($match[1]).'</td></tr>'
: ((!empty($match[2]) && empty($match[1])) ? '<tr><td>'.htmlspecialchars($match[2]).'</td></tr>' : ''));
Добавлено через 25 секунд

Не по теме:

вроде не напутал..

1
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
30.08.2012, 12:26  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
заменить на
PHP
1
2
3
4
echo (!empty($match[1]) && !empty($match[2])) 
? '<tr><td>'.htmlspecialchars($match[1]).'</td><td>'.htmlspecialchars($match[2]).'</td></tr>'
: ((!empty($match[1]) && empty($match[2])) ? '<tr><td>'.htmlspecialchars($match[1]).'</td></tr>'
: ((!empty($match[2]) && empty($match[1])) ? '<tr><td>'.htmlspecialchars($match[2]).'</td></tr>' : ''));
Добавлено через 25 секунд

Не по теме:

вроде не напутал..

Спасибо ребята, чтобы я без вас делал.

Есть ещё идейка, мы дело имели когда-нибудь с мониторингами для игровых серверов?

Есть очень простой для движка Sourse, ну там для контры, халфы и т.д. вот его код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
 
$server = '109.195.35.202';
$port   = '27015';
 
function GetServerInfo($server,$port) { 
     $fp = @fsockopen("udp://".$server, $port); 
     if (!$fp) return false;
 
     @fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10)); 
     $start=time(); 
     socket_set_timeout($fp,1); 
     $st=fread($fp,1); 
     $r=socket_get_status($fp); 
     $result['status'] = $r["timed_out"];
     $r=$r["unread_bytes"]; 
     if ($r == 0) { @fclose($fp); return false;} 
     $st.=fread($fp,$r); 
     @fclose($fp);
 
     $st=substr($st,5); 
     $address=SubStr($st,0,StrPos($st,chr(0))); 
     $address=str_replace(chr(0),"|",$address); 
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $name=SubStr($st,0,StrPos($st,chr(0))); 
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $map=SubStr($st,0,StrPos($st,chr(0))); 
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $st=SubStr($st,StrPos($st,chr(0))+1); 
     $current=ord(SubStr($st,0,1)); 
     $max=ord(SubStr($st,1,1));
 
     if ($map == "") return false; 
     $result['map'] = $map; 
     $result['name']= $name; 
     $result['current'] = $current; 
     $result['max'] = $max;
 
     return $result; 
}
 
$serv = GetServerInfo($server,$port);
 
if ($serv) {
echo '
Сервер: '.$server.':'.$port.'
<br>
Название: '.$serv['name'].'
<br>
Карта: '.$serv['map'].'
<br>
Игроков: '.$serv['current'].'/'.$serv['max'].'
<br>
Статус: On-line
';
} else {
echo 'Статус: Off-line';
}
 
?>
И получается вот так:
C
1
2
3
4
5
Сервер: 109.195.35.202:27015 
Название: de_dust2_2x2 
Карта: cstrike 
Игроков: 7/40 
Статус: On-line

Вот в чём собственно вопрос, надо такой же только для Call of Duty.
В нете исходников нету, есть только модуль для DLE могу скинуть там 2 файлика .php

Спасибо ещё раз.
0
0 / 0 / 1
Регистрация: 28.08.2012
Сообщений: 43
07.09.2012, 10:56  [ТС]
+1
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.09.2012, 10:56
Помогаю со студенческими работами здесь

Считывание из файла и вывод на html страницу
Здравствуйте, нужна помощь. Никак не могу додуматься, как реализовать данную программку: есть несколько полей ввода данных, идет проверка...

вывод данных из БД (Denver) на HTML страницу (PHP)
&lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;?php function printData($data) { echo &quot;&lt;table align ='center'&gt;&quot;; echo &quot;&lt;tr&gt;&quot;; echo &quot;&lt;td...

Запись html символов в mysql и вывод в html страницу
Вот кусок кода if ( $this-&gt;cattpl != '' ) { $a .= str_replace( array('{url}','{description}','{name}'), ...

Вывод данных из XML файла на странице HTML
Есть файл с не сложным кодом по выводу данных из XML файла на странице HTML. &lt;html&gt; &lt;body&gt; &lt;script&gt; ...

Как вставить в текущую html-страницу содержимое другого html-файла?
Как вставить в текущую html-страницу содержимое другого html-файла? Допустим есть файл index.php: &lt;html&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru