![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Wtam!
Jak w temacie ćwiczę pobieranie danych z jakiejś innej strony. Jako przykład napisałem prostą stronę z napisem i liczbą. Chcę, żeby kod znalazł tą liczbę i pobrał. Jeśli zamiast "^[a-z]+$" wpiszę czego konkretnie ma szukać jest ok. Czy w ogóle w dobrą stronę idę? Wiem, że są podobne tematy na forum i to na ich podstawie napisałem to: Pozdrawiam! <?php $url="http://ja89.cba.pl/tekst.html"; $zawartosc = file_get_contents($url); if(ereg("^[0-9]+$", $zawartosc, $kurs)) { echo "<p>znaleziono: "; echo $kurs[0]; echo '</p>'; } else { echo '<p>nic nie znaleziono</p>'; }; ?>[php] |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 25.01.2014 Ostrzeżenie: (0%)
|
Z tego co wiem, to wyrażenie regularne powinno wyglądać tak:
/^[0-9]+$/ Czyli twój kod powinien wyglądać tak:
Ale nie sprawdzałem tego, musisz sam zobaczyć. Na przyszłość polecam pokazywanie kodu w znacznikach [PHP][/PHP] Ten post edytował NoWay 14.08.2014, 16:14:50 |
|
|
|
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%)
|
nie uywaj ereg tylko preg_match
-------------------- |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Być może i tak powinien wyglądać, aczkolwiek błąd jest chyba gdzieś indziej. Poprawiłem i nie działa.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 25.01.2014 Ostrzeżenie: (0%)
|
I tak jak kolega wyżej napisał, spróbuj z funkcją preg_match() bądź preg_match_all(). Gdzieś miałem nawet napisany taki właśnie skrypt, tylko on wyszukuje danego wyrażenia regularnego w tekście, który podaje w textboxie.
|
|
|
|
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
Daszek ^ oznacza początek ciągu, a znak dolara $ jego koniec. Czyli według tego wyrażenia ma dopasować wszystkie cyfry do ciągu który składa się TYLKO z cyfr. W przeciwnym razie nic nie zostaje dopasowane i nic ci nie zwraca.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Niestety. Już nawet wcześniej próbowałem preg_match i też nic. No ale dzięki za podpowiedzi!
by_ikar if(eregi("5", $zawartosc, $kurs)) - eregi lub preg_match funkcja eregi wyszukuje po całym tekście tylko tej jednej wartości, ale jeżeli dam "/^[0-9]+$/" to cały tekst musi być dopasowany do tego wyrażenia jeśli rozumiem? Czyli jeżeli na mojej stronie jako tekst dam jedna cyfrę to powinno mi zadziałać? No chyba nie bo też nie działa. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 25.01.2014 Ostrzeżenie: (0%)
|
Masz tutaj taki prosty skrypt:
Sprawdza czy w tekscie pobranym z textboxa jest wyrażenie regularne zawarte w zmiennej $sprawdzanie. Póki co jest tam ustawione w sumie byle co. Możesz go sobie zmodyfikować do własnych potrzeb. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Ok, dzięki! Będę patrzeć!
|
|
|
|
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
@NoWay tutaj nie chodzi o samo użycie preg_match czy innej funkcji, tylko o nie poprawne wyrażenie. Tak @stan89, to wyrażenie działa tylko wtedy kiedy dana strona zwraca tylko cyfry, a tam przecież (w tym linku co podałeś przynajmniej) jest też kod html, więc to wyrażenie niczego nie złapie i nic ci nie zwróci. Pokaż stronę z której chcesz wybrać dane i powiedz jakie dane chcesz wybrać. Prościej jest to zrobić za kogoś niż wytłumaczyć zasadę działania wyrażeń regularnych, z czym ma problem masa ludzi.
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
by_ikar
W kodzie php dałem link do pustej strony html na której jest tylko napis - 'cwiczenie 5'. Jeśli możesz to napisz jak by to wyglądało, żeby z tej strony pobrał mi te 5. W ogóle to mam jakieś takie zadanie, żeby pobrać kurs złotówki z np.https://www.google.com/finance?q=PLNUSD, potem kurs rubla, i jeszcze jakieś obliczenia na tym robić ale chciałem zaczać od czegoś wręcz banalnego. Pozdrawiam! |
|
|
|
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
Akurat serwer do hostowania tego typu rzeczy wybrałeś bardzo zly, dokleją ci tam masę kodu dlatego też masz problemy. W przypadku twojej strony było by to mniej więcej coś takiego:
jeżeli chciałbyś pobrać numer ćwiczenia. W przypadku kursu walut, ten html jest tam trochę bardziej skomplikowany i najlepiej byłoby dobrać się do tego za pomocą jakiejś biblioteki do poruszaniu się w drzewie DOM, ale można to też zrobić za pomocą wyrażenia:
PS do poćwiczenia wyrażeń są odpowiednie strony, jak np ta: http://www.regexr.com/ z tym że na tego typu stronach przeważnie implementacje javascriptowego regexa, więc przewidywania nie będą tam dostępne, ale i tak większość ludzi nie używa tego, bo przeważnie wyrażenia używane są do banalnych rzeczy, jak wyciągniecie cyfer etc. Ten post edytował by_ikar 14.08.2014, 20:42:21 |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.08.2014 Ostrzeżenie: (0%)
|
Ja już Ci wciskam, że pomogło(bo chyba takie tutaj są zwyczaje). Gdybyś mi tylko jeszcze napisał czy class=bld to jest coś w rodzaju dziedziczenia?
Napewno będę nad tym jeszcze przesiadywał a Regexr na pierwsze dwa rzuty oka wydaj się być bardzo rozgarniętą stroną Dzięki i pozdrawiam! |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 25.01.2014 Ostrzeżenie: (0%)
|
to jest poprostu tekst, którego szukasz. Wyrażenie regularne, w którym jest takie coś.
|
|
|
|
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%)
|
Ja już Ci wciskam, że pomogło(bo chyba takie tutaj są zwyczaje). Gdybyś mi tylko jeszcze napisał czy class=bld to jest coś w rodzaju dziedziczenia? Napewno będę nad tym jeszcze przesiadywał a Regexr na pierwsze dwa rzuty oka wydaj się być bardzo rozgarniętą stroną Dzięki i pozdrawiam! To jest zwykły html (który nawet jest niepoprawny, dlatego nie ma tam apostrofów bo powinno być tak: class="bld", dlatego może nie mogłeś się dobrać, do wartości), a stronę którą ci podesłałem sam mam na pasku zakładek nie bez powodu |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 02:41 |