Autor Zpráva
koudi
Profil
Mám takový zvláštní problém - potřebuji uložit určitou stránku na internetu. Něco jako funkce 'uložit do archivu'. Normálně by to nebyl problém - prostě buď fopen, curl, nebo čistě jenom ob funkce (stránka je na mém serveru), jenže tímto způsobem získám pouze html dané stránky. Css, obrázky apod. se mi tímto způsobem neuloží.

Samozřejmě, můžu si napsat vlastní 'parser', kterej mi z toho vytahá adresy na všechny css, obrázky, ..., ale to se mi moc nechce :).

Neřešili ste něco podobnýho?
tiso
Profil
Svojho času som si stiahol http://csszengarden.com tak že som si stiahol css-ká a potom ich prešiel vlastným skriptom aby som získal adresy obrázkov... Nie je to nič zložité...
koudi
Profil
Ne, neni to složité, ale nechce se mi :).
llook
Profil
V PHP5 můžeš zkusit použít DOM, nějak takhle:
$html = file_get_contents('webová adresa té stránky');

$doc = new DOMDocument;
$doc->loadHTML($html);

$soubory = array();

// obrázky <img>
foreach ($doc->getElementsByTagName('img') as $img) {
$src = $img->getAttribute('src');
if (!empty($src)) {
$soubory[] = $src;
}
}

// styly <link>
foreach ($doc->getElementsByTagName('link') as $link) {
if ($link->getAttribute('type') == 'text/css') {
$href = $doc->getAttribute('href');
if (!empty($href)) {
$soubory[] = $href;
}
}
}
a tak dál...

Pak si pole soubory převedeš na URL adresy (protože v tom poli můžou bejt adresy relativní k tý stránce) a postahuješ je.
llook
Profil
Stejný jako uložit do archivu to ale nebude nikdy. Archiv pracuje s tím, co si natahal prohlížeč, leccos mohlo být vloženo přes CSS nebo Javascript. To by sice teoreticky šlo taky, ale už by to bylo moc složitý. Hlavně ten Javascript, implementace JS v PHP sice existuje, ale jenom toho jazyku samotného...
koudi
Profil
llook
Díky, mrknu na ten DOM, vypadá to dobře.
Jinak ten archiv bylo myšleno něco ve smyslu "archiv článků", nebo tak něco :)
Školník
Profil
A co WinHTTrack? Nevím, jestli jsem dotaz pochopil úplně přesně, ale dokáže do sebe nacpat jak mod_Rewirite, tak JS, CSS, obrázky... A vytvoří kompletní stránky, tj. každá má hlavičku, obsah, patičku, odkazy na JS. Umí přepisovat adresy atd.

Jestli jsem minul cíl dotazu, tak nevím..:-)
koudi
Profil
Školník
Ano, tento program znám, ale není to zcela přesně to, co hledám :).
Já bych to potřeboval udělat pomocí PHP.
Toto téma je uzamčeno. Odpověď nelze zaslat.