Diskuze: Tahání dat z webů

PHP PHP Tahání dat z webů American English version English version

Avatar
Vakos
Redaktor
Avatar
Vakos:

Ahoj,
pracuji na webu a potřeboval bych tahat na můj web také data z cizích webů. Je možné to dělat pomocí PHP nebo musím využít jazyk jako třeba Java atd?

Odpovědět 26.3.2015 19:59
"Jediný způsob, jak dělat skvělou práci, je milovat to, co děláte. Pokud jste to ještě nenašli, hledejte dál. Ne...
Avatar
Odpovídá na Vakos
Martin Konečný (pavelco1998):

Ahoj,

můžeš použít třeba cURL a možná to jde i jen s pomocí

$content = file_get_contents("http://webova.stranka.cz/slozka/soubor.json");

ale u toho je, myslím, potřeba povolit nějaké direktivy.

Editováno 26.3.2015 20:33
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +3 26.3.2015 20:33
Avatar
Vakos
Redaktor
Avatar
Odpovídá na Martin Konečný (pavelco1998)
Vakos:

Když jsme nad tím tak přemýšlel, tak to asi bude nejrozumnější přes javu. Javou si stáhnu data a hodím je do databáze a php si je vytáhne.

Volím také toto řešení, protože v Javě jsem dál než v PHP

Nahoru Odpovědět 26.3.2015 20:51
"Jediný způsob, jak dělat skvělou práci, je milovat to, co děláte. Pokud jste to ještě nenašli, hledejte dál. Ne...
Avatar
Odpovídá na Vakos
Martin Konečný (pavelco1998):

Pokud je nepotřebuješ přímo při provádění scriptu, pak je asi jedno, jak je vytaháš. PHP ti nabízí např. zmíněné cURL, které ti ta data ze serveru stáhne během programu, takže je můžeš rovnou použít.

S "čistým" cURL jsem už docela dlouho nedělal, takže nezaručuji, že to bude správně - ale jako nástin toho, jak by to mohlo vypadat:

$curl = curl_init();

// adresa webu
curl_setopt($curl, CURLOPT_URL, "http://webova.stranka.cz/slozka/soubor.json");

// aby se vrátil výsledek
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

$result = curl_exec($curl);
curl_close($curl);

// předpokládá, že data z webu budou ve formátu JSON
// jinak by to mělo vracet HTML vygenerovaného dokumentu, takže si můžeš hrát třeba s regulárními výrazy
$array = json_decode($result);

echo "<pre>";
var_dump($array);

foreach ($array["people"] as $person) {
  echo "#" . $person["id"] . " " .$person["name"] . "<br />";
}

Pro ukázkový JSON:

{
  "people": [
    {"id": 1, "name": "Martin Kone"},
    {"id": 5, "name": "Vakos"},
    {"id": 10, "name": "Lionel Messi"}
  ]
}

by měla funkce json_decode() do proměnné $array uložit:

array(
  "people" => array(
    0 => array("id" => 1, "name" => "Martin Kone"),
    1 => array("id" => 5, "name" => "Vakos"),
    2 => array("id" => 1, "name" => "Lionel Messi"),
  )
)

Více info k:
cURL - http://php.net/…ook.curl.php
JSON - http://json.org/example
dotaz na Stack Overflow - http://stackoverflow.com/…ode-the-data

Editováno 26.3.2015 22:51
 
Nahoru Odpovědět  +1 26.3.2015 22:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.