potřebuji poradit zdali existuje nějaká funkce v PHP, která by mi v HTML kódu našla hodnoty, které potřebuji následně zpracovat. Jde o to, že si ze serveru natáhnu stránku do proměnné. V proměnné mám celou stránku, ale protože nepotřebuji zbytečnosti kolem, ale jen pár hodnot, chtěl bych je z toho kódu nějak dostat do mých nachystaných proměnných.
Myšlenka je taková, že bych se orientoval podle "Název stanice" a vím, že po deseti znacích je názve oné stanice. A tu potřebuji nějak dostat do mé proměnné. Problém je ten, že stránka je vždy jiná a já se mohu orientovat dle těchto záchytných bodů.
Hledal jsem dlouho a nenašel nic, asi neumím pořádně definovat, co potřebuji. :(
Je to skoro všechno, jen jsem změnil jméno serveru a ořezal výstup. Tedy krátký skript a k tomu výstupní šablona, která mi z vycucnutých dat udělá nečíslovaný seznam v HTML.
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Pochopil jsem-li to dobře, tak v php si natáhnu onu požadovanou stránku a v tom .xls souboru provádím "výběr" hodnot, které zobrazím? Omlouvám se za trapné dotazy, ale v programování jse kompletně zakrněl. :D
#3xhonzax
Přesně tak. Jen ten XSL soubor je trochu komplikovaný, protože ten HTML kód, ze kterého jsem vyzobával data, byl dost mizerně napsaný. Budeš tam mít vlastně jen jednu podmínku:
Kód mi už jakž takž funguje, jen mi bere všechny věci z tabulky. Jak docílit aby bral pouze některé? Podle tříd se orientovat nemůžu, protože data tahám z cizího serveru, kde je nemůžu nijak upravit.
<?php
function __get($name) {
switch ($name) {
case 'outertext': return $this->root->innertext();
case 'innertext': return $this->root->innertext();
case 'plaintext': return $this->root->text();
case 'charset': return $this->_charset;
case 'target_charset': return $this->_target_charset;
}
}
Vidím, že není rozdíl mezi innertext a outertext. Dále jsem tam našel podporu pro ISO Latin1, ale chybí tam ISO Latin2. Podobně je tam i podpora pro západoevropské kódování Windows, ale chybí podpora pro středoevropské kódování Windows. Psali to minimálně dva programátoři, každý jiným stylem. Našel jsem tam i dost prasáckých konstrukcí typu globální proměnné apod.
EDIT: Tohle jsem zkusil ve standardním PHP a funguje mi to:
<?php
$doc = new DOMDocument();
@$doc->loadHTMLFile("http://www.server.cz/");
$xpath = new DOMXpath($doc);
$elements = $xpath->query(
"//th[@class='tbl_hdr']/following-sibling::text()[1]"
);
foreach ($elements as $element) {
print_r($element);
}
Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Konečně jsem se dostal po těch třech dnech k počítači. :) Nakonec jsem využil první metody (když už jsem si dal tolik práce s louskáním, jak to vlastně funguje). :D Chtěl bych vám všem zúčastněným poděkovat za rady a hlavně, že jsem nebyl poslán tam, kde slunce nesvítí. :)
Jinak ano, ono možná pro moji potřebu to je "kanón na vrabce", ale zase jsem si říkal, co se v mládí naučíš ... ;)