Autor Zpráva
jindrakuba
Profil
Dobrý den, potřeboval bych poradit, jak pomocí PHP či čehokoli jiného vypsat pouze cenu (jako čistý text) ze serveru Heureka...

Zatím mám toto:

<?php
$zdroj = file_get_contents('http://mobilni-telefony.heureka.cz/sony-xperia-l/');
$start = strpos($zdroj, '<title>');
$konec = strpos($zdroj, '</title>', $start);
$vystup = substr($zdroj, $start, $konec);
echo ($vystup); 
?>

Ideálně, kdyby byla výstupem pouze číselná hodnota - tedy cena. Nevíte někdo jak dál, případně klidně zbytek kódu?
Díky mnohokrát :)
Micruss
Profil
<?php

$title = '<title>Sony Xperia L od 4 649 Kč - Heureka.cz</title>';
$kc = explode('od ', $title);
$kc = explode(' Kč', $kc[1]);
$kc = $kc[0];
echo $kc;

takhle bych to řešil já ;-)
jindrakuba
Profil
Ahoj, toto funguje, ale mne jde právě o to abych za $title nemusel dosazovat tu část kódu.
Ideálně, kdybybych zadal za proměnnou adresu www a script by mi vyhodil cenu :)
Joker
Profil
jindrakuba:
Micruss to asi myslel jen jako příklad, obsah $title je možné si načíst podle potřeby.

Ale jinak, nemá Heureka náhodou na tohle nějaké API? To je dost pakárna ten údaj zjišťovat takovým způsobem.
jindrakuba
Profil
Jo teď mi došlo že to stačí dosadit za proměnnou a ono to funguje stejně.... Díky moc ...
Pro lidi, kteří potřebují to samé, tady je zdrojový kód:

<?php
$vstup = ('ADRESA_ZBOZI');
$html = file_get_contents($vstup);
$vyrez = explode('od ', $html);
$vyrez = explode(' Kč', $vyrez[1]);
$vystup = $vyrez[0];
echo $vystup; 
?>
okolojsoucí
Profil *
Na to již musíš přes regulérní výrazy.
$zdroj = file_get_contents('ADRESA');
            $start = strpos($zdroj, '<title>');
            $konec = strpos($zdroj, '</title>', $start);
            $vystup = str_replace(' ', '', strip_tags(substr($zdroj, $start, $konec)));
            preg_match('/[\d]+Kč/', $vystup, $cena);
            echo $cena = reset(str_replace('Kč', '', $cena));
jindrakuba
Profil
No nevim jestli má heureka nějaké API :) Pokud ANO, klidně se nechám poučit jak toho samého docílit méně hardcore :)
I tak moc děkuji :)

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: