Autor Zpráva
mou
Profil *
Zdravím,

měl bych prosbu. S pomocí wget stahuju soubory a vzdy pred ulozenim bych potreboval zobrazit hlavicku.
Pokud pouziji:

echo exec("wget -O /adresar/test.jpg --save-headers $url");

hlavicka se spravne ulozi do stahovaneho souboru z adresy $url, ale pokud chci hlavicku jen zobrazit takto:

echo exec("wget -O /adresar/test.jpg --server-response $url");

tak to nefunguje. Vite prosim nekdo jak HTTP hlavicku zobrazit popripade ulozit do promenne?

Diky
mou
TomášK
Profil
Zkus
curl -I -L google.cz
mou
Profil *
curl nainstalovaný je, ale

echo exec("curl -I -L google.cz");

nezobrazí nic
AM_
Profil
Zkus použít přímo vestavěné CURL funkce v PHP (tedy ne přes exec).
mou
Profil *
Diky za radu, pres curl zjistim hlavicku a to je ok:

function http_head_curl($url) {
if (!extension_loaded('curl_init') || !function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HEADER, "Cookie:PHPSESSID=$sess);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
return false;
}

echo http_head_curl($adresa);


Bohuzel jsem tim problem nevyresil :( zapomnel jsem dodat, ze stahuju soubor pres zabezpeceni jeste pres SESSIONID odesilane v hlavicce. Cili mi to ukaze hlavicku, ale bohuzel ne stahovaneho souboru, ale skriptu, ktery na nej teprve odkazuje.


Problem je presne takovyto:

stahuju fotku ze serveru pomoci wget, ale nevim, jestli je fotka ve formatu .gif nebo .jpg a u wget potrebuju pri stahovani zadat jmeno ciloveho souboru. Takhle:

echo exec("wget -O /adresar/nazevfotky.jpg --cookies=off --header 'Cookie:PHPSESSID=$sess' $adresa");

ale pokud je obrazek typu .gif, tak uz je to spatne a ulozi se blbe.

Lze tedy presne nejak zjistit typ souboru, ktery pomoci wget stahuju, nebo popripade stahnout jinym zpusobem? Jde to pomoci CURL?

Diky
Kajman_
Profil *
exec vrací jen poslední řádek, pokud chcete získat plný výstup programu, dejte funkci další parametr dle manuálu.
exec()ů

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: