![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 1 Dołączył: 29.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam pytanie jak napisać funkcję, która wybierze mi z określonego tagu html wszystko co się znajduje między znacznikami np.div? Mam kod html. np. wybierze mi Wyszukać można funkcją preg_match do znalezienia tagów ale nie wiem do końca jak to zastosować i jak wybrać tekst z pomiędzy tagów... ? Ten post edytował Thuunder 2.07.2006, 19:58:54 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 29.05.2006 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ja bym najpierw znalazł ciąg '<div', zapisał jego pozycję i od niej znalazł pierwszy nawias ostry '>' (bo przecież w div może być style i nie będzie to '<div>`), również zapisujemy jego pozycje. Następnie od tego znaku poszukujesz '</div>' i zapisujesz pozycje. To co masz pomiędzy pozycja '>' a '</div>' to to czego szukasz.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 402 Pomógł: 0 Dołączył: 20.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym najpierw znalazł ciąg '<div', zapisał jego pozycję i od niej znalazł pierwszy nawias ostry '>' (bo przecież w div może być style i nie będzie to '<div>`), również zapisujemy jego pozycje. Następnie od tego znaku poszukujesz '</div>' i zapisujesz pozycje. To co masz pomiędzy pozycja '>' a '</div>' to to czego szukasz. tak, fajnie. tylko po co na okolo skoro mamy wyrazenia regularne?
i w $out dosteniesz liste wszystkiego co bylo w elementach blokowych poodzielane <br />-ami. dalej juz sobie z tym poradzisz. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 1 Dołączył: 29.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
początek działa, ale coś nie bardzo z domknięciem, bo wyświetla mi wszystko do końca ...
w którym momencie wrzucić do tabeli wynik(treść) poszczególnych tagów ? Ten post edytował Thuunder 2.07.2006, 20:49:33 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
troszke nie rozumiem, mi to działa. Wysmienicie ;P. jak w którym momencie. Opisz dokładniej o co chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 402 Pomógł: 0 Dołączył: 20.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
fakt ;] moje niedopatrzenie. koniec ciagu nie bedzie dopasowany.
to chyba bardziej ci sie przyda. wrzuca wyniki (zawartosc tagow) do tablicy $out[1]. potem foreach i robisz z tym co zechcesz ;] |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 1 Dołączył: 29.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
ale mam jeszcze pytanie jak zrobić żeby jeśli na którejś ze stron będzie zamiast div to DIV żeby i jedno i drugie wziął pod uwagę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ? Ten post edytował Thuunder 4.07.2006, 15:51:23 |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Po to się stosuje operator i po zakończeniu wyrażenia (#si).
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 1 Dołączył: 29.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
acha fajnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
ale jeśli mam np. funkcję substr_count() i szukam, zliczam jakieś wyrażenie w tekście to w podobny sposób ? Ten post edytował Thuunder 4.07.2006, 16:12:59 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 402 Pomógł: 0 Dołączył: 20.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
nie. substr_count() nie obsluguje wyrazen regularnych tylko zwykly, czysty tekst (jako ciag szukanych znakow) .
to co ci pokazalem to wyrazenia regularne. do zliczenia ilosci wystpien uzyj preg_match_all(). |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 1 Dołączył: 29.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
ok ale jak już mam w tablicy te wszystkie znalezione tagi np. div to zawartość z nich wrzucam do tablicy
potem wykonuję pętlę foreach i zliczam substr_count() dlatego mam problem z tym żeby skrypt "nie brał" pod uwagę wielkości liter tylko zliczył wszystkie wystąpienia. nie wiem w jaki sposób miałbym to zrobić za pomocą funkcji preg_match_all bo w sumie ona chyba jest do zwracania wszystkiego co pasuje do wzoru a nie do zliczania ... Ten post edytował Thuunder 4.07.2006, 16:41:23 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 402 Pomógł: 0 Dołączył: 20.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
1. jak juz napisal tiraeth wielkości liter nie jest brana pod uwage!
2. gdybys zajrzal do linkow ktore ci podalem odkrylbys ze preg_match_all() "returns the number of full pattern matches (which might be zero), or FALSE if an error occurred." |
|
|
![]() ![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 1 Dołączył: 29.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jak sformułować wyrażenie żeby zliczyć ilość wystąpień zaa pomocą preg_match_all? Rozumiem,że wrzucić do tablicy a potem sprawdzić jej wielkość ? Mam jeszcze problem z formułowaniem wyrażeń regularnych
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 402 Pomógł: 0 Dołączył: 20.01.2003 Ostrzeżenie: (0%) ![]() ![]() |
blagam. wszyskto dajemy ci jak na tacy wiec PRZECZYTAJ z łaski swojej informacje o tym jak dziala preg_match_all() i co ZWRACA (zreszta odpowiedni cytat nawet ci wkleilem).
Wiecej tu nie zagladam. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak sformułować wyrażenie żeby zliczyć ilość wystąpień zaa pomocą preg_match_all? Rozumiem,że wrzucić do tablicy a potem sprawdzić jej wielkość ? Oj, manual prawdę Ci powie: Cytat("php Manual") int preg_match_all ( string pattern, string subject, array &matches [, int flags [, int offset]] )
(...) Returns the number of full pattern matches (which might be zero), or FALSE if an error occurred. |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 234 Pomógł: 1 Dołączył: 29.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
dzięki zrobiłem to jednak funkcją substr_count()(co prawda nie jest to na tyle dobre rozwiązanie bo jest problem z rozróżnianiem liter ale można zmienić na małe słowo szukane i tekst )
bo niestety mimo, że czytałem preg_match_all nie daje mi takich wyników jakich się spodziewałem, może coś źle robię... (IMG:http://forum.php.pl/style_emoticons/default/mad.gif) jeśli dobrze rozumiem ( z tego co widzę) to preg_match_all zwraca tablicę wyników a nie ilość. Wiem w którym miejscu php.net znajduje się ta funkcja ale liczyłem na pomoc a nie na podawanie kawałków z php.net (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) Ten post edytował Thuunder 5.07.2006, 15:05:12 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://forum.php.pl/style_emoticons/default/blink.gif) (IMG:http://forum.php.pl/style_emoticons/default/blink.gif) (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
$preg = preg_match_all... $ile= (int) $preg; |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:08 |