Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.05 Príspevky: 13415 Témy: 1494 | 1494 Bydlisko: Bratislava |
Kód: $string = '<div class="asdf">nejakytext<div class="wert">nejaky iny text</div><div class="asdf">dalsi nejaky text</div></div>'; existuje nejaka funkcia v php, do ktorej zadam ze chcem vybrat vsetko z $string co je medzi <div class="asdf"> a jeho ukoncovaciemu </div> ?
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
preg_match, alebo preg_match_all ale budeš potrebovať reg.výraz
_________________ always is always wrong |
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina | |
Registrovaný: 05.02.13 Prihlásený: 26.10.23 Príspevky: 59 Témy: 3 | 3 |
Presne dnes v práci som sa s týmto stretol. Dá sa to cez regulárne výrazy avšak ja som zvolil jednoduchšiu cestu - jquery (ak ti to okolnosti dovoľujú)
Mal som 157 diviek s TV stanicami avšak potreboval som vybrať len názov stanice, obrazok a link.
tak jednoducho cez each som si prechadzal, každé jedno div - findoval elementy a vyťahoval hodnoty. Následne som si v cykle odosielal data cez post - kde sa mi v phpč-ku už ukladali do databázy.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Nič v zlom, ale js je na takéto veci naozaj nevhodné... Nie je to o nič jednoduchšie ako keby si použil niektorý z parserov, čo som linkol ja, akurát ty sa len poriadne obmedzíš a potenciálne si narobíš problémy. Bolo by fajn naučiť sa robiť veci správne a nie len tak "aby to fungovalo"... Takých kolegov som už mal strašne veľa a proste no comment...
_________________ C#, PHP, ... |
|
Registrovaný: 05.02.13 Prihlásený: 26.10.23 Príspevky: 59 Témy: 3 | 3 |
To je veľmi diskutabilné. Záleží to od situácie. Ja som mal statický obsah. A áno, v tejto situácii bolo pre mna jednoduchšie použiť Jquery - nie z hľadiska vhodnsoti ale rýchlosti. Jedným riadkom si cez classu vyhľadám input / div v danom cykle, hodnotu uložím a odošlem. Easy.
Tvoj názor je správny, z hľadiska akéhosi nepísaného pravidla správneho programovania. A jednoducho pre mňa v danej situácií, kde hral čas najväčšiu rolu, bolo jednoduchšie cez id-čka / classy zistiť hodnoty ako vymyslieť a overiť správnosť 3och regexov.
EDIT: čo si pozerám tie parsery, užitočná vec - pravda
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Ak spracovávaš HTML, rozumné je, podľa mňa, použiť nejaký HTML5 parser (pretože nové prehliadače používajú HTML5) a potom na to použiť XPath či niečo podobné. Prípadne sa dá použiť DOMDocument, je to štandardná súčasť Php a podporuje to všetko potrebné.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
chrono, keď už použiješ parser, tak xpath, domdocument a neviem čo už potom nepotrebuješ... Keď si pozrieš napr ten PHP Simple HTML DOM Parser čo som dal ako príklad, tak ten ti vie vyberať elementy podobne, ako by si to robil pri jquery. Nič viac netreba. Kód: // Create DOM from URL or file $html = file_get_html('http://www.google.com/');
// Find all images foreach($html->find('img') as $element) echo $element->src . '<br>';
// Find all links foreach($html->find('a') as $element) echo $element->href . '<br>'; Nemotajte zasa Janovi hlavu, mám pocit, že aj tak v tom má guláš miestami
_________________ C#, PHP, ... |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
A keď chceš img element, ktorý je vložený v div s id "thumbnailas" ? (pri XPath je to niečo ako "//div[@id='thumbnails']/img")
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Tak máš návod http://simplehtmldom.sourceforge.net/manual.htm , časť "How to find HTML elements?" Tých možností ako získať ten výsledok je dokonca viacero... Ten tvoj príklad by vyzeral konkrétne asi takto: Kód: $results = $html->find('div#thumbnails img');
_________________ C#, PHP, ... |
|
Registrovaný: 06.02.14 Prihlásený: 19.01.18 Príspevky: 443 Témy: 9 | 9 |
janoF: a pre zaujimavost, preco potrebujes parsovat html? neda sa to urobit cele inak a pracovat priamo s datami, nie s (vyslednym) html kodom?
|
|
Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 15 | 711 | 05.07.2014 16:05 chrono | | v PHP, ASP | 10 | 459 | 14.10.2007 11:32 qacer | | v PHP, ASP | 9 | 701 | 28.04.2011 2:13 JanoF | | v Databázy | 5 | 758 | 03.01.2009 17:05 zaciatocnik | | [ Choď na stránku: 1, 2 ] v PC zostavy | 39 | 869 | 13.08.2014 20:08 Phanteom | | v Zvuk | 0 | 949 | 23.01.2007 21:39 mg6 | | v Ostatné programy | 16 | 673 | 27.08.2015 12:42 Pospi | | v Pevné disky a radiče | 1 | 440 | 03.02.2012 10:33 majky358 | | v PC zostavy | 14 | 740 | 21.01.2009 17:07 Atrix24 | | v PHP, ASP | 7 | 663 | 11.01.2010 18:52 neopagan | | v HTML, XHTML, XML, CSS | 17 | 1112 | 17.01.2009 14:36 dsljohn | | v HTML, XHTML, XML, CSS | 25 | 1406 | 08.09.2007 10:05 stenley | | v Notebooky a netbooky | 0 | 429 | 03.02.2009 11:38 Iv0 | | v Operačné systémy Microsoft | 4 | 488 | 21.08.2009 18:25 jurajtuz | | v Informujem sa | 5 | 456 | 24.08.2014 15:31 ramaya | | v HTML, XHTML, XML, CSS | 15 | 1047 | 03.12.2011 10:04 killer |
|