![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
MAm taki oto zapis z html:
Jak do tej pory mam taki zapis: <div class="addthis_sharing_toolbox"><\/div>([ \s?]+)<\/div>([^<]+)<\/div> To mi ladnie wyciaga tekst, ale bez <p>, bo jesli znajdzie sie tam pomiedzy <p> lub <br/> to juz jest problem i mi nie wyciaga textu. Jak mozna ulepszyc moj zapis regex? O ile da sie cos takiego w ogole wyciaganc... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wyrażenia regularne nie służą do obróbki DOM. Zainteresuj się funkcjami DOM typu simplexml.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
Hmm nigdy o tym co mi napsiales jeszcze nie slyszalam i pewnie bede meic sporo pracy nad tym... no ale coz jak sie nie da regexp to poczytam o tych DOM cokolwiek to jest ;p tylko ze moj plik to htlm jest...
Ten post edytował dolar 24.05.2017, 10:15:03 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Wyrażenia regularne nie służą do obróbki DOM. Zainteresuj się funkcjami DOM typu simplexml. Ja się po tym podpisuję, i zasugerowałbym też hasło "html/dom parser", ale dla zabawy zrobiłem tego regexa: Kod <div class="addthis_sharing_toolbox"><\/div>\s+<\/div>((^|.|\s)+)<\/div> sam tekst czyli to co w regexie w nawiasie wyciągniesz w php preg_match (parametr matches), a te zbędne tagi wewnątrz tekstu strip_tags. Samym regexem nie da się pominąć fragmentów tekstu. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
@bostav @vikinh - dzieki za podpowiedz. Wlasnie czytam o tych DOM'ach. Juz na samym starcie mam problem, gdyz jak probuje uzyc funkcji :
To mam error : l error: Uncaught Error: Call to undefined function file_get_html() in /one.php:243 Stack trace: #0 {main} thrown in /one.php on line 243 Czy to wina mojego edytora ze nie zna tej funkcji? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wypadało by wcześniej dołączyć pliki biblioteki simple html.
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
Wypadało by wcześniej dołączyć pliki biblioteki simple html. Fakt, wlasnie sciagnelam te pliki... hmm a jak je powinnam dlaczyc? teraz mam ten plik w Pobranych dokumentach. Mam go przeniesc do swojego projektu rozuemim? Dobra dalam rade... jade dalej z kodem No dobra chce wyciaganc ten zakichany tekst stad:
Tak sobie ktos zaprojektowal strone i stad musze wyciaganc. Probuje tak: $info['opis']= $html->find('.addthis_sharing_toolbox div'); Ale zwraca pusta tablice. Ten post edytował dolar 24.05.2017, 13:35:29 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Kod <div class="addthis_sharing_toolbox"></div> Ciekawe dla czego... Lepiej poszukaj `.latestItemIntroText` |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
$html->find('.latestItemIntroText')->innertext;
Dalej null |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
var_dump($html->find('.latestItemIntroText'));
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
No dobra, a czy jest mozliwosc tym DOM'em zrobic wyjatek z tej mojej klasy i nie wyciagac tekstu "Share"? Bo tez mi go pobiera jako text tegoz diva
Ktokolwiek? ![]() Ten post edytował dolar 24.05.2017, 14:37:26 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
simplehtml nie obsługuje selektora :not.
Możesz usunąć po prostu ten tekst albo np za pomocą biblioteki phpquery:
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 06:50 |