Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Využij akce až 80 % zdarma při nákupu e-learningu - více informací. Zároveň pouze tento týden sleva až 80 % na e-learning týkající se Swift
discount week 80
Avatar
Neaktivní uživatel:21.6.2018 18:55

Weby stahovat umím ale nevím jak zaměnit HTTP_USER_AGENT na toto:

Mozilla/5.0 (compatible; MatBot; +https://katalog.mat-internet.eu)

nevím zda zrovna toto bude fungovat v HTTP se moc nevyznám :)

Odpovědět
21.6.2018 18:55
Neaktivní uživatelský účet
Avatar
Jindřich Máca
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
Jindřich Máca:21.6.2018 19:08

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. :-`

 
Nahoru Odpovědět
21.6.2018 19:08
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Neaktivní uživatel:21.6.2018 19:10

A momentálně používám toto:

file_get_contents($url, FILE_USE_INCLUDE_PATH);
Nahoru Odpovědět
21.6.2018 19:10
Neaktivní uživatelský účet
Avatar
Jindřich Máca
Redaktor
Avatar
Odpovídá na Neaktivní uživatel
Jindřich Máca:21.6.2018 20:04

OK, tak to je docela jednoduché, ale jako obvykle k tomu mám pár připomínek. :-P

  1. Pokud pomocí file_get_contents() získáváš data z nějaké externí absolutní URL, tak FILE_USE_INCLUDE_PATH je tam úplně zbytečně.
  2. Když se podíváš do dokumentace této funkce, najdeš tam přímo příklad, kde se manipuluje s HTTP hlavičkami - http://php.net/…contents.php#…
  3. Když vezmeš tenhle příklad, stačí tam už jen dosadit tu správnou HTTP hlavičku, ve tvém případě tedy 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);
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
21.6.2018 20:04
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.