Zjištění title a dalších jakýchkoliv dat z cizích stránek

Napsal hary28 dne 01.08.2010 22:55 v Tvorba www stránek, PHP, MySQL | 5 komentářů

Náhled - Zjištění title a dalších jakýchkoliv dat z cizích stránek

Narazily jste již na zákazníka, který chtěl mít na svých stránkách data z jiných stránek, ale nevěděli jste jak na to? Dnes si ukážeme jak dostat jakákoliv data z různých stránek např.: sportovní databulky, počasí, title, description, keywords... na posledních třech bude postaven náš článek. V prvním kroku je důležité si zjistit zdrojový kód stránky, ze které chcete čerpat data. Toto provedeme přes CURL.




<?php
function curlGetContents($page)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $page);
$result= curl_exec ($ch);
curl_close ($ch);
return $result;
}
?>



Dalším naším krokem bude si vytvořit funkci, která bude zdrojový kód který si zjistíme pomocí curlGetContents(); prohledávat pomocí regulárních výrazů hledat v něm data která budeme vyžadovat. Nyní už jsme si zjistily data, která požadujujeme a zbývá nám změnit pomocí iconv kódování dat.




<?php
function showData($url)
{
$f = curlGetContents($url);
/* Je možné, že jiné stránky budou mít trochu pozměněný zdrojový kód. Stačí podle stránek upravit regulární výraz. */
$regular = preg_match('~<title>(.+?)<\/title>~s', $f, $out);
$regular = preg_match('~<meta name="description" content="(.+?)" \/>~s', $f, $out2);
$regular = preg_match('~<meta name="keywords" content="(.+?)" \/>~s', $f, $out3);
/* Zde do $my_data uložím data které poté vypisuji */
$my_data = '<strong>Title: </strong>'.$out[1].'<br />';
$my_data .= '<strong>Description: </strong>'.$out2[1].'<br />';
$my_data .= '<strong>Keywords: </strong>'.$out3[1].'';
/* Upravíme kódování stránky, nyní je nastavena vstupní stránka v UTF-8 a výstupní také. */
$my_data = iconv("utf-8", "utf-8", $my_data);
return $my_data;
}
?>



Dalším a posledním nejjednoduším krokem bude tato data vypsat.




<?php
$url = 'http://blog.tukni.cz';
echo showData($url);
?>



Toto je konec tohoto článku. Doufám, že jsem některým z nás pomohl vyřešit problém se kterým se setkali.

Doporučit

Linkuj Vybrali.sme.sk

Komentáře (5)

Lahnys
18.11.2010, 15:07

Jaký je např rozdíl při použití?
$file = file_get_contents("http://www.seznam.cz");

Autor hary28
18.11.2010, 18:42

Ne na všech hostingzích je funkce file_get_contents(); povolena.

matkor007
08.04.2011, 14:07

Zdravim ja by som sa chcel spytat ako mam nahodit kniznicu curl.. mam win 7 a stale je s tym nejaky problem.. diky moc :)

Autor hary28
08.04.2011, 15:55

Ahoj, knihovnu curl chceš nahodit na svůj Apache server, na které píšeš weby na PC nebo ti curl nefungují na nějakém hostingu na internetu?

Martin
29.11.2011, 23:47

Ahoj, díky za návod, chci se zeptat jak má vyřešit to, když mám na normální stránce (php, html,... [ne xml]) třeba 10 divů s class "objekt" a potřebuji dostat těch 10 obsahů divu, opakování preg_match by bylo dle mého hodně časové náročné pro server. Díky, když-tak mě dej vědět na mail prosím, že jsi odpověděl.

<< « Předchozí 1 Další » >>

Přidat komentář

nepovinné (chráněn proti spamu), možno použít gravatar
nepovinné

Ochrana proti spamu. Napište prosím číslo dvacet-čtyři: