Diskuze: Stahování webů v PHP a záměna HTTP_USER_AGENT
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tak v první řadě tu úplně nevidím otázku a hlavně tu nevidím použité technologie, funkce a co jsi třeba už zkoušel. User-Agent je součástí HTTP hlavičky každého dotazu, takže ho prostě změníš. Jak konkrétně to uděláš závisí na právě tom, jaké technologie a funkce používáš...
A za druhé, pokud se to opět týká Tvého webového
"vyhledávače", tak přeci skoro všechno na webu funguje přes HTTP a tím
pádem by jsi ho měl naopak umět velice dobře. Už jen proto, aby jsi byl
schopen řešit podobné problémy.
A momentálně používám toto:
file_get_contents($url, FILE_USE_INCLUDE_PATH);
OK, tak to je docela jednoduché, ale jako obvykle k tomu mám pár
připomínek.
file_get_contents()
získáváš data z nějaké
externí absolutní URL, tak FILE_USE_INCLUDE_PATH
je tam úplně
zbytečně.User-Agent
. Problém je,
že samotnou hodnotu nemáš definovanou dobře... Pro crawlovací boty by jsi
měl používat jiný formát viz. https://developer.mozilla.org/…s/User-Agent#…Takže když se to dá všechno dohromady, bude ten příklad vypadat asi nějak takhle:
<?php
// Create an options.
$options = [
'http' => [
'header' => 'User-Agent: MatBot/1.0 (+https://katalog.mat-internet.eu)'
]
];
// Create a stream context.
$context = stream_context_create($options);
// Open the file using the HTTP headers set in the context.
$file = file_get_contents('http://www.example.com/', false, $context);
Zobrazeno 4 zpráv z 4.