Autor Zpráva
PetrX
Profil *
Potřebuji poradit jak na rozložení HTML souboru respektive získání potřebných dat. Samotný soubor jsem schopen automaticky stáhnout a teď z něj potřebuji získat data.
Příklad HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>
		Geocaching - Trackable Items - Search
	</title>

......

        <table width="100%" cellpadding="3" cellspacing="0" border="0">
            <tr>
                <td valign="top" align="left" height="16"></td>
                <td valign="top" align="left" height="16"><strong>Name</strong></td>
                <td valign="top" align="left" height="16"><strong>Last Log</strong></td>
            </tr>
    
	        <tr>
                <td valign="top" align="left" height="16"></td>
                <td valign="top" align="left" height="16"><img src="1195.gif" align="absmiddle"/>&nbsp;<a href="http://www.geocaching.com/track/details.aspx?id=1716957">Oakcoins Oak Leaf Geocoin</a></td>
                <td valign="top" align="left" height="16">10/4/2009&nbsp;</td>
            </tr>

....

</body> </html> 


Já potřebuji získat jen řádky tabulky (je jich samozřejmě více, ale pro případ postačuje jedna)
<td valign="top" align="left" height="16"><img src="1195.gif" align="absmiddle"/>&nbsp;<a href="http://www.geocaching.com/track/details.aspx?id=1716957">Oakcoins Oak Leaf Geocoin</a></td>


Potažmo z ní potřebuji jen název obrázku, odkaz a název v odkazu. Umí někdo poradit či nasměrovat jak toto udělat?
Joker
Profil
PetrX:
Jestli ta stránka má pevnou strukturu a tohle je jediná tabulka na ní (resp. jde jednoznačně identifikovat), šlo by na to napsat regulární výraz.
PetrX
Profil *
Ano, stránka má vždy stejnou strukturu, jen údaje v tabulce se pochopitelně mění.
Regulární výraz mě také napadl, ale nevím jak do toho. Můžeš prosím trochu poradit? Nikdy mi moc nešli a většinou to byly prasárny, které fungovali, ale strašně zatěžovali server.
Joker
Profil
PetrX:
No jestli má být výsledkem vnitřek řádků tabulky a tabulka je na stránce jen jedna, měl by stačit i jednoduchý výraz:
/<tr>(.*?)</tr>/si
PetrX
Profil *
Bohužel na stránce je více tabulek, ale stejnak zatím nechápu jak pomocí regulárního výrazu získám jen ty patřičné řádky, který příkaz mám použít. Je to pro mě nějak nepochopitelné.
Joker
Profil
PetrX:
jak pomocí regulárního výrazu získám jen ty patřičné řádky
Které "patřičné"? Zatím byla řeč o „potřebuji získat jen řádky tabulky“, tj. mám za to, že všechny řádky.

Bohužel na stránce je více tabulek
A čeho by se mohl skript chytit, aby dokázal určit tu správnou?
PetrX
Profil *
Celý obsah html je ZDE.
PetrX
Profil *
Myslel jsem získat tu buňku tabulky co jsem uvedl v prvním příspěvku. Špatně jsem se vyjádřil, omlouvám se.
Error404
Profil
<? include'predek.php' ?>

$informace_s_promennou_kterou_chces_zobrazovat = '<td valign="top" align="left" height="16"><img src="1195.gif" align="absmiddle"/>';

<? echo $informace_s_promennou_kterou_chces_zobrazovat ?>

<? include'konec.php' ?>



jednoduché ne ?
Joker
Profil
Error404:
Eh? PetrX má právě problém, jak získat obsah do toho $informace_s_promennou_kterou_chces_zobrazovat :) Čili tohle moc neřeší jeho problém.

PetrX:
Takže- jak zní podmínka pro to, která buňka se má vybrat?
PetrX
Profil *
Asi bych svůj požadavek měl specifikovat přesněji a konkrétněji. Mám stažené tuto stránku http://www.geocaching.com/track/search.aspx?uid=68f06dca-b4c0-40f0-a0ad-6f38ec8b5558 (zdrojový kód je jasný). Z této stránky potřebuji získat buňky tabulky, ve kterých je adresa obrázku (ikony), odkaz na položku a název položky. Je to tento typ řádku:
<td valign="top" align="left" height="16"><img src="../images/wpttypes/sm/1195.gif" align="absmiddle"/>&nbsp;<a href="http://www.geocaching.com/track/details.aspx?id=1716957"> Oakcoins Oak Leaf Geocoin</a></td>


Vyskytuje se na stránce několikrát (pochopitelně v obměněné podobě) a já bych je rád automaticky vybral pro další používání. Doufám, že jsem posal svůj problém již přesněji.
Alphard
Profil
<?php
$zdroj = file_get_contents("http://www.geocaching.com/track/search.aspx?uid=68f06dca-b4c0-40f0-a0ad-6f38ec8b5558");
preg_match_all('~<td valign="top" align="left" height="16"><img src="([^"]+)" align="absmiddle"/>&nbsp;<a href="([^"]+)">(.+)</a></td>~isU', $zdroj, $out);
?>
<xmp>
<?php print_r($out); ?>
</xmp>
PetrX
Profil *
Moc děkuji za pomoc. Je to přesně to co jsem chtěl. Ani jsem nečekal přesné řešení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: