Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z wyrażeniem regularnym
mickey23
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.12.2015

Ostrzeżenie: (0%)
-----


Witam,

Próbuję napisać wyrażenie regularne które wyciągnie mi czas w formie:

1. 2 godz. 30 min
2. 2 godz.

Zrobiłem:

  1. $time = '/<span class="time">(.+?) min. /


To wyciąga mi dane gdy są podane minuty, ale nie działa gdy jest tylko godzina, więc spróbowałem tak:

  1. $time = '/<span class="time">(.+?)godz|min/';


Niestety nie działa ten sposób :/

Jak w takim razie powinno wyglądać to wyrażenie żeby działało w obu przypadkach ?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


np.:

(.*)godz.(!?(.*)min)?

Ten post edytował Pyton_000 9.12.2015, 17:42:56
Go to the top of the page
+Quote Post
mickey23
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.12.2015

Ostrzeżenie: (0%)
-----


Niestety mi to nie działa dla wyrażeń:

<span class="time"> 1 godz. 30 min. </span>
<span class="time"> 1 godz. </span>
<span class="time"> 10 min. </span>
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


<span class="time">(!?(.*)godz.)?(!?(.*)min.)?
Go to the top of the page
+Quote Post
mickey23
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.12.2015

Ostrzeżenie: (0%)
-----


Kurde, mi to niestety nie działa.

Konkretnie wyciągam czas stąd:
http://www.filmweb.pl/search/film?q=&t...rtal&page=1

Tylko tam nie jest:
<span class="time"> 1 godz. 30 min. </span>
tylko:
<span class="filmTime"> 1 godz. 30 min. </span>

Ale tak czy inacej nie działa mi wyrażenie, które mi podsunąłeś :/
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


1. Do wyciągania danych z HTML powinieneś użyć parsera HTML (np. DOMDocument), a nie wyrażeń. Tych możesz co najwyżej użyć do wyciągnięcia danych z tekstu.
2. Mając tekst "X godz. Y min.", "X godz." bądź "Y min." możesz skorzystać z następującego wyrażenia do wciągnięcia danych:
Kod
/(?:(?P<hours>\d+) godz\.)?\s*(?:(?P<minutes>\d+) min\.)?/
Go to the top of the page
+Quote Post
viking
post
Post #7





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Jest też jeszcze opcja skorzystania z innych serwisów na bazie normalnego API gdzie wszystkie dane o filmie są zwracane w postaci JSON.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Proszę bardzo:
https://github.com/nSolutionsPL/filmweb-api

uzywałem i działa nieźle
Go to the top of the page
+Quote Post
mickey23
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.12.2015

Ostrzeżenie: (0%)
-----


To API się nie sprawdzi, a kod CROZINA nie działa:

https://3v4l.org/7Y0eA

Może ktoś ma jakieś sugestie ?

Ten post edytował mickey23 11.12.2015, 16:15:24
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:46