Diskuze: Parsování HTML, začátečník
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 16 zpráv z 16.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, tak zase ja 
takova funkce neexistuje - musis pouzit file_get_contents
Aha ale v navodu na te adrese pisou presne tenhle příkaz...zkusim to o polocase fotbalu
Ajo promin - moje chyba...
musis tu knihovnu nejdrive includnout do PHP a pak ta funkce pojede
Naincludovat knihovnu do php? Mrknu na google pak jak se to dělá, nemam tušení
Nejdriv stahnes knihovnu z https://sourceforge.net/…mldom/files/ a pak pred pouzitim te funkce pouzijes require_once('cestakeknihovne/simple_html_dom.php');
A ty složky musi byt na serveru / localhostu v složce s tim projektem, jinak to.nebude fungovat?
Musis mit na serveru/localu akorat tu knihovnu a mit povolene fopen wrapper aby jsi mohl nacitat data z externi URL. Jestli pak na hostingu zjistis, ze nejde kvuli omezeni nacitat z externi URL (pak by ti ale na WP nefungovaly aktualizace), tak by jsi musel tu parsovanou html stranku nahrat taky na server
Tak jsem pořád na local hostu, už mi to nějakým způsobem něco vytváří, ale vypisuje mi to, že nefunguje stream protože v té knihovně není ta složka. To je asi tím, že nemám povolené to fopen, na stack overflow píšou že to musím pustit nějak přes CMD...
Warning: file_get_contents(hokejbal.cz/1-liga/tabulky/): failed to open stream: No such file or directory in C:\xampp\htdocs\PhpProject1\simple_html_dom.php on line 75
Tak v php.ini mám :
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-fopen
allow_url_fopen=On
Přesto to nešlo, takže jsem použil
<?php
// put your code here
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.google.co.in");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
print $result;
?>
A jdu zkoušet dál
Asi by bylo lepsi sem placnout celej kod
z toho co bych si mohl domyslet
:
misto
file_get_contents(hokejbal.cz/1-liga/tabulky/)
patri urcite
file_get_contents('http://hokejbal.cz/1-liga/tabulky/');
jinak se bez toho http:// pokousi php hledat mezi soubory na disku
neboli patri tam
file_get_html('http://hokejbal.cz/1-liga/tabulky/');
Nene, uvozovky tam byli, vypadalo to takhle:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
// put your code here
$html = file_get_html('http://www.google.com/');
?>
</body>
</html>
Ale tady https://stackoverflow.com/…2279/8377142 se to už nějak dohádalo, že bych měl použít tu knihovnu CURL, je to koneckonců i v návodu přímo od toho simpledomHTML, že pokud to nejde, tak by se mělo jít do toho curl. Teď to vypadá nějak takto, dostanu celou stránku a snažím se z toho vyříznout tu specifickou část kterou chci, ale nějak mi to nereaguje ten příkaz ret
<?php
// put your code here
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://hokejbal.cz/1-liga/tabulky/");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
print $result;
str_get_dom;
$ret = $html->find('.standings tablesort tablesorter tablesorter-default');
?>
Mas tam ted spatne cileni - kdyz uz, tak tam patri
$ret = $html->find('.standings.tablesort.tablesorter.tablesorter-default');
bez mezer = prvek, co ma vsechny tridy
Jenže to je jakoby to byly jednotlivé třídy, já to ale mám ve webmaster tools takto, jako jednu třídu s několika slovným názvem..
<table class="standings tablesort tablesorter tablesorter-default">
Zkusil jsem i tu tvojí variantu a taky nic
P.S. Google chrome
Edit:
Neměl jsem vytvořený $html, takže pokračuji dál v bádání:
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://hokejbal.cz/1-liga/tabulky/");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
print $result;
$html= str_get_html($str);
str_get_dom;
$ret = $html->find('.standings tablesort tablesorter tablesorter-default');
?>
Edit:
Mám to, po 6 hodinách na stackoverflow a google. Děkuji za rady! Určitě mi
to rozšířilo trošku obzory. Výsledný kód kdyby někdo řešil stejný
problém:
$html = file_get_html('http://hokejbal.cz/1-liga/tabulky/');
$ret = $html->find('table.standings', 1);
print $ret;
Zobrazeno 16 zpráv z 16.