Nasıl php ile bir XML dosyası oluşturulur ve indirmek için istemi var?

3 Cevap php

Ben bir xml dosyası oluşturmak için DOMDocument kullanıyorum:

$dom = new DOMDocument('1.0', 'iso-8859-1');
echo $dom->saveXML();

Ben bu dosyaya bağlantıyı tıkladığınızda, o sadece bir xml dosyası olarak görüntüler. Nasıl yerine indirmek ister mi? Ayrıca, nasıl yerine 'backup.php' olduğu php dosyanın gerçek adının 'backup_11_7_09.xml' olarak indirebilirsiniz (insert bugünün tarihi ve xml olarak koymak) için isteyebilir

3 Cevap

Öncesinde yankı eki olarak Content-Disposition başlığını ayarlayın:

<?  header('Content-Disposition: attachment;filename=myfile.xml'); ?>

Tabii ki, myfile.xml kullanarak formatlamak strftime() dosya adı biçimlendirilmiş bir tarih almak için yapabilirsiniz:

<?
    $name = strftime('backup_%m_%d_%Y.xml');
    header('Content-Disposition: attachment;filename=' . $name);
    header('Content-Type: text/xml');

    echo $dom->saveXML();
?>
<?php

// We'll be outputting a PDF
header('Content-type: text/xml');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="my xml file.xml"');

// The PDF source is in original.pdf
readfile('saved.xml'); // or otherwise print your xml to the response stream
?>

Içerik-disposition başlığını kullanabilirsiniz.

Bu çalışması gerekir:

header('Content-Disposition: attachment; filename=dom.xml');
header("Content-Type: application/force-download");
header('Pragma: private');
header('Cache-control: private, must-revalidate');

$dom = new DOMDocument('1.0', 'iso-8859-1');
echo $dom->saveXML();

Lütfen bir oturumu kullanıyorsanız, IE6 ile sorunları önlemek için aşağıdaki ayarları kullanın:

session_cache_limiter("must-revalidate");
session_start();