![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Problem jest mniej więcej taki: mamy sklep, np: maximedia.pl
Wybieramy jakiś produkt, np: TEN Strona z urządzeniem zawiera tabelkę (podam tylko fragment): Kamera Przetwornik obrazu rozmiar: Przetwornik obrazu ClearVid CMOS 1/3,0 Przetwornik obrazu system: Progresywny 14-bitowy przetwornik DXP: TAK Technologia Advanced HAD: NIE Liczba pikseli brutto (tys.): 3200 Efektywna liczba pikseli w trybie kamery (tys.): Tryb 16:9; 2280 / Tryb 4:3; 1710 Efektywna liczba pikseli w trybie aparatu (tys.): Tryb 16:9; 2280 / Tryb 4:3; 3040 Nastawianie ostrości automatyka w pełnym zakresie: TAK Nastawianie ostrości ręczne: TAK Przycisk ręcznego nastawiania ostrości: Panel Jak wydobyć tylko źródło tej tabelki? Próbowałem wyrażeniami regularnymi, ale tabela nie ma (tak mi sie wydaje) żadnych znaków szczególnych. Nie da się więc ich łatwo znaleźć, czy ktoś ma jakiś ciekawy pomysł? |
|
|
![]() |
![]()
Post
#2
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Fakt, przy pierwszym się nie zastanowiłem. Jednak przy drugim, znajdę również końcówki innych tabel (bo w końcu operuje na całym źródle). Tak czy siak dzięki za pomoc.
|
|
|
--Cypherq-- |
![]()
Post
#4
|
Goście ![]() |
Rany, głupio tak, ale coś te wyrażenia regularne nie wchodzą do głowy. Jak zamienić za pomocą preg_replace():
(analogicznie z <td> i <table>) na (czyli znaczniki bez parametrow) żeby nie było, że proszę o gotowe to próbowałem już tak:
Jednak i kilka innych sposobów, niestety nie dzieje się nic, a ja czytam kolejny artykuł o regexpach i nie wyciągam z niego widocznie odpowiednich wniosków. Pomożecie? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Mam nadzieję, że nie dostanie mi się za posty pod postami własnymi, ale przez pomyłkę napisałem jako gość i nie mogę posta edytować. Działa mi taka prosta konstrukcja:
Gdy próbowałem tak:
Nie działało. Czemu początek i koniec wyrażenia blokował działanie? Źle zrozumiałem zasadę ich funkcjonowania? |
|
|
![]()
Post
#6
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Kod ([^>]+) Czyli wszystko aż do napotkania znaku >. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Ale wtedy > zostanie i wyjdzie ostatecznie <table>>
|
|
|
![]()
Post
#8
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Tylko nie obrażę Cię jeśli zapytam "czemu tak"? Czyli jak to działa?
Post pod postem, ale po dłuższej przerwie a pytanie zgadza się z tematem. Mianowicie, próbuję rozwiązać problem następujący: W kodzie HTML strony znajduje sie N linków do produktów. Linki te mają niepowtarzalną w innych fragmentach kodu konstrukcję (<a class="produkt" -> klasa ta nie powtarza się w innych miejscach). Jak wydobyć je, tzn. usunąć całą resztę kodu oprócz linków? Chodzi mi raczej o wyjaśnienie krokowe, ew. podpowiedź co do użycia konkretnych funkcji, które mogą mi tutaj pomóc. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ja nie rozumiem dlaczego na siłę starasz się zastosować preg_replace" title="Zobacz w manualu PHP" target="_manual kied preg_match_all" title="Zobacz w manualu PHP" target="_manual bedzie znacznie lepszym wyjsciem...
I zobacz sobie co zawiera tablica $wyniki... BTW, przydałby się trochę dłuższy ciąg do porównywania... |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że lepszy by tu mogło być zastosowanie DOM" title="Zobacz w manualu PHP" target="_manual, loadHTML i potem kolejnych metod przetwarzających.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Serdecznie dziękuję za pomoc. Pomysł Novotnego sprawdził się, chociaż zawierał literówkę:
Czyli brak backslasha przed /a> (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Twoja uwaga na temat niepotrzebnego zastosowania preg_replace jest bardzo słuszna, głównie po to kombinuję z regularnymi, żeby lepiej znać ich zastosowanie. Btw. po wpisaniu preg w wyszukiwarkę funkcji w manualu, preg_math_all nie wyskakuje, a link jest w preg_math, ale go przeoczyłem :] |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czyli brak backslasha przed /a> (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) OIMW slasha nie trzeba eskejpować... :/ |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Łe? No chyba jednak tak, skoro wywala mi błąd o nieznanym modyfikatorze "a"...
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 9 Dołączył: 28.08.2006 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Czyli lepiej używać np. # jako delimitera? Kurde, a ja eskejpowałem każdego slasha :/
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ja hołduję zasadzie że najlepiej używać takiego znaku jakiego nie ma w patternie żeby się za dużo nie naeskejpować bo wtedy wyrażenie robi się mało przejrzyste... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ja najczęściej używam hasha (#) ale stosuje też inne, zależnie od potrzeby...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:40 |