Autor Zpráva
xlifer
Profil
Generuji RSS soubor staticky zvlášť a chtěl bych dosáhnout automatického zobrazení. Zkoušel jsem použít hlavičku s typem text/xml, ale to mi nefunguje.

Soubor rss.xml mám uložený tedy zvlášt a když udělám include "soubor.xml" s hlavičkou, tak to samozřejmě hází chybu....

<?
header('Expires: ' . gmdate('D, d M Y H:i:s') . '  GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . '  GMT');
header('Content-Type: text/xml; charset=windows-1250');
include "rss.xml";
?>


Předem moc díky za radu.
xlifer
Profil
Tak už jsem na to asi přišel a mám takové řešení :

Zajímá mě názor zde zkušenějších?

$file = "rss.xml";
If (Is_Readable($file) && File_Exists ($file)):
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");
Header("Last-Modified: ".GMDate("D, d M Y H:i:s")." GMT");
Header("Content-Type: text/xml; charset=windows-1250"); 
$fh = FOpen($file, "r");
$data = FRead($fh, FileSize($file));
FClose($fh);
echo $data;
endif;


A nepřidat do hlavičky ješte: ?

Header("Pragma: No-cache");
Header("Cache-Control: No-cache, Must-revalidate");
Joker
Profil
xlifer:
include se používá na PHP soubory, cesta v [#2] je v podstatě správná, ale rychlejší je použít funkci readfile.
xlifer
Profil
Joker:

Přes readfile jsem měl problém s tím, že se mi soubor nabídne ke stažení (attachment dle příkladu na php.net), ale já potřebuji, aby se přímo otevřel do prohlížeče automaticky? Lze to nějak vyřešit? Pak by to bylo ideální.
xlifer
Profil
Něco jsem měl asi špatně, toto mi funguje výborně:

$file = "rss.xml"

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}


A jak to, že nemusí být v hlavičce definice typu souboru TEXT/XML ??
xlifer
Profil
Nevím proč, ale Explorer zkrátka nebere z hlavičky typ XML

header('Content-Type: text/xml; charset=windows-1250');


je úplně jedno co tam napíšu a vždy mi to vyhodí pouze ten výstup jako text, nikoliv XML.

ve FF to jede dobře

týká se to příspěvku #2 (nevím jak udělat ten odkaz na příspěvek)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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