V manuálu jsem nějak 'nenašel', jak zjistím jestli se v dokumentu vyskytuje alespoň jeden tag např. <b> . ví někdo?
Fórum › PHP
DOM - existence tagu?
Sry, on se pta na PHP ;)
To pawlik: projed si tohle
http://cz.php.net/dom
Jinak upozornuju, ze na jakekoliv pouziti DOM v PHP musis mit 100% XML validni dokument (vsechny tafy musi byt uzavrene a ve spravnem poradi), jinak to selze.
pawlik napsal:
To CommanderZ :V manuálu jsem nějak 'nenašel',
p.s. V DOM parsuju HTML, ne XML.
- HTML je speciálním typem XML - a to že se ti i špatně napsané HTML někdy zobrazí správně neznamená že to je správně napsané.
CommanderZ tím myslel že to HTML musí být 100% validní abys to přes ten DOM našel (pokud se mýlím opravte mě)
CommanderZ tím myslel že to HTML musí být 100% validní abys to přes ten DOM našel (pokud se mýlím opravte mě)
HTML jako takove validni byt nemusi, muzes tam klidne mit neco jako <abc zprava="ahoj">LOL</abc>, za coz by te kazdy HTML validator vyfuckoval, ale PHP DOM modul ti to rozparsuje, protoze z hlediska XML struktury to validni je.
To pawlik : Sorry, to me nejak nedoslo, hlavne z toho duvodu, ze DOM v PHP je dost krkolomny, viz nekolik komentaru od "VeliteleZ" :smile1:
To CommanderZ : Mas pravdu, v zapalu boje jsem zapomnel, v jakem threadu fora jsem :smile18:
DOM je v PHP hlavne pomale, krkolomne az zas tak ne - ono se chova docela podobne jako v JS - tam ti taky bude blbnou, jestli mas pokazenou XML strukturu.
Krkolomne, pomale, to je jedno co to je za slovo, proste to je v praxi tezko pouzitelne, protoze IMHO to je takova PHP klicka neceho, co by PHP ani delat nemelo :)CommanderZ napsal:
DOM je v PHP hlavne pomale, krkolomne az zas tak ne - ono se chova docela podobne jako v JS - tam ti taky bude blbnou, jestli mas pokazenou XML strukturu.
Proc ne? Ono to slouzi hlavne jako XML parser, na HTML neni urcen.
BTW, existuje nekolik dalsich XML parseru pro PHP, ty se ale museji doinstalovavat.
Pouzij funkci count, ta ti vrati pocet polozek v poli
pawlik
Jenže metoda getElementsByTagName() nevrací pole, ale instanci DOMNodeList, která má zřejmě implementován Iterator (i když v manuálu jsem to o tom žádnou zmínku nenašel, ale jinak by nešla procházet v konstrukci foreach), ale nejspíš už ne Countable. Ale co jsem našel, je možné získat velikost pomocí vlastnosti length.
$pocet = $dom->getElementsByTagName("jakykoliv_tag")->length;
ja bych sel pres preg_match('#<b>.*</b>#i', $str);
To toka : no tak, většinou mam dokument v tom řetězci, ne?
Myslim jako ze mam skript, v kterem budu mit ten preg_match, a abych ho mohl pouzit na stejny soubor, tak bych ho musel znovu do $str nacist, treba pres get_file_content. Protoze jinak nevim, nebo tomu vubec nerozumim :)
Na pouziti DOM funkci take musis mit kompletni soubor/retezec s celym dokumentem.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Js a DOM objekty — založil OrB
Existence souboru — založil BDS
Existence URL — založil pawlik
Existence souboru — založil Tomik
HTML SIMPLE DOM — založil webdorf
Moderátoři diskuze