[PHP]Wyrażenia regularne |
[PHP]Wyrażenia regularne |
16.06.2017, 11:48:10
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
Witam, Potrzebuje z następującego kodu html
<img src="logo.gif"><br><code>Data: 08.06.2017, Godzina: 14:20:34<br><b></b>Stan licznika:<br>- aktualna godzina: <b>0</b> <br>- od początku dnia: <b>18</b><br><br>W rozbiciu na godziny: <br> 0:00 - 1:00: <b> 0</b> <br> 1:00 - 2:00: <b> 0</b> <br> 2:00 - 3:00: <b> 0</b> <br> 3:00 - 4:00: <b> 0</b> <br> 4:00 - 5:00: <b> 0</b> <br> 5:00 - 6:00: <b> 0</b> <br> 6:00 - 7:00: <b> 0</b> <br> 7:00 - 8:00: <b> 0</b> <br> 8:00 - 9:00: <b> 0</b> <br> 9:00 - 10:00: <b> 1</b> <br>10:00 - 11:00: <b> 0</b> <br>11:00 - 12:00: <b> 4</b> <br>12:00 - 13:00: <b> 12</b> <br>13:00 - 14:00: <b> 1</b> <br>14:00 - 15:00: <b> 0</b> <br>15:00 - 16:00: <b> 0</b> <br>16:00 - 17:00: <b> 0</b> <br>17:00 - 18:00: <b> 0</b> <br>18:00 - 19:00: <b> 0</b> <br>19:00 - 20:00: <b> 0</b> <br>20:00 - 21:00: <b> 0</b> <br>21:00 - 22:00: <b> 0</b> <br>22:00 - 23:00: <b> 0</b> <br>23:00 - 24:00: <b> 0</b> <br><br>Status: 100000<br>Diagnostyka: 00 <br>s#: 02782, v1.13f(000001)<br> Stos: 74<br><a href="./mem.cgi?I=1">dane archiwalne</a><br> <a href="./email.cgi">wyślij raport e-mail</a><br><a href="./config.cgi">aktualna konfiguracja</a></code> wyciągnąć dane i zapisać je w tablicy najlepiej w formacie 0:00 - 1:00 =>0 1:00 - 2:00 =>0 itd. Próbuje to zrobić przy pomocy preg_match: $tab = preg_match('@([0-9]+:[0-9]+)- ([0-9]+:[0-9]+)@', $page); ale nie znajduje mi żadnych wyrażeń. Ktoś ma jakiś pomysł? |
|
|
16.06.2017, 11:51:59
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
16.06.2017, 12:20:48
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
Dzięki Pyton prawie działa ale tablica zwaraca 4 następujące pozyjcę:
0:00 - 1:00: 0 0:00 1:00 0 KOD: $tab = preg_match('@(\d{1,2}:\d{2}) - (?: )?(\d{1,2}:\d{2}).*?(\d+)@m', $page, $matches); $nTab = count($matches); for ($i=0;$i<$nTab; $i++) echo $matches[$i].'<br />'; |
|
|
16.06.2017, 12:29:40
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
I jaki masz w tym problem? W 1-szym element zawsze zawiera pełne dopasowanie.
|
|
|
16.06.2017, 12:47:49
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
bo chodzi o to żeby wyciągnąć wszystkie zakresy godzin + liczba wejść a wyciąga tylko pierwszy
0:00 - 1:00: 0 1:00 - 2:00: 0 2:00 - 3:00: 0 3:00 - 4:00: 0 4:00 - 5:00: 0 5:00 - 6:00: 0 6:00 - 7:00: 0 7:00 - 8:00: 0 8:00 - 9:00:1 9:00 - 10:00: 0 10:00 - 11:00: 4 11:00 - 12:00: 12 12:00 - 13:00: 1 13:00 - 14:00: 0 14:00 - 15:00: 0 15:00 - 16:00: 0 16:00 - 17:00: 0 17:00 - 18:00: 0 18:00 - 19:00: 0 19:00 - 20:00: 0 20:00 - 21:00: 0 21:00 - 22:00: 0 22:00 - 23:00: 0 23:00 - 24:00: 0 |
|
|
16.06.2017, 13:05:08
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
|
|
|
16.06.2017, 13:09:18
Post
#7
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) |
|
|
|
16.06.2017, 14:06:26
Post
#8
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
Niestety:
Parse error: syntax error, unexpected 'foreach' (T_FOREACH) in C:\xampp\htdocs\liczniki\import.php on line 9 podpowiedzcie mi proszę czy w ogóle dobrze kombinuje próbując zapisać to w tablicy. Potrzebuje te dane zapisać do bazy danych. Skrypt ma się wykonać raz dziennie i zapisać dane z każdego dnia z wejściami o poszczególnych godzinach? |
|
|
16.06.2017, 14:09:56
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
nie wstawiłeś ;
|
|
|
16.06.2017, 14:14:38
Post
#10
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
preg_match_all('@(\d{1,2}:\d{2}) - (?: )?(\d{1,2}:\d{2}).*?(\d+)@', $page, $matches);
foreach ($matches[0] as $match) { echo $match.'<br />'; } moim zdaniem jest wszędzie gdzie powinien być |
|
|
16.06.2017, 14:16:49
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
To może pokaż 15 linijek od początku...
|
|
|
16.06.2017, 14:23:21
Post
#12
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
$page = file_get_contents("tomaszow.html");
preg_match_all('@(\d{1,2}:\d{2}) - (?: )?(\d{1,2}:\d{2}).*?(\d+)@', $page, $matches); foreach ($matches[0] as $match) { echo $match.'<br />'; } to jest cały kod foreach ($matches[0] as $match) a to jest 9 linia |
|
|
16.06.2017, 14:26:18
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
skoro tak twierdzisz to ten kod działa
|
|
|
16.06.2017, 14:30:04
Post
#14
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
no niestety nie ;(
|
|
|
16.06.2017, 14:35:51
Post
#15
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) |
Nie ma prawa nie działać, masz najzwyklejszy błąd składni, do tego konkretnie opisany co jest nie halo.
Ten post edytował Puszy 16.06.2017, 14:36:01 |
|
|
16.06.2017, 15:38:35
Post
#16
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Idę o zakład że brakuje `;` przed foreach i że nie pokazałeś całego kodu.
|
|
|
16.06.2017, 18:33:36
Post
#17
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
<?php
$page = file_get_contents("tomaszow.html"); preg_match_all('@(\d{1,2}:\d{2}) - (?: )?(\d{1,2}:\d{2}).*?(\d+)@', $page, $matches); foreach ($matches[0] as $match) { echo $match.'<br />'; } ?> to jest cały kod, który zwraca błąd Parse error: syntax error, unexpected 'foreach' (T_FOREACH) in C:\xampp\htdocs\liczniki\import.php on line 9 Miałbym pisać nieprawdziwy kod i oczekiwać pomocy... |
|
|
16.06.2017, 18:43:59
Post
#18
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Jaka wersja PHP?
|
|
|
16.06.2017, 18:44:57
Post
#19
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
To w takim razie w kodzie jest jakiś znak który wyświetla się jako biały a rzeczywiście nim nie jest.
-------------------- |
|
|
16.06.2017, 18:50:38
Post
#20
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 19.07.2015 Ostrzeżenie: (0%) |
viking jesteś mistrz. wykasowałem puste linijki przed foreach i poszło. Dzięki wszystkim za pomoc.
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 21:31 |