2010-07-04 11 views
0

我有一個名爲dynamicxml.php的PHP文件,運行一堆代碼,從數據庫中繪製數據並創建一個XML文件。當我用鼠標右鍵單擊並保存鏈接dynamicxml.php?var=test我需要的對話框中選擇XML作爲默認的文件類型和文件重命名爲var.xml:PHP生成的XML文件加載正確的文件類型在另存爲對話框

header("Content-type: text/xml"); 
echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<blah><blah_blah>'.$_GET['var'].'</blah></blah>'; 

當點擊它加載XML文件中的鏈接瀏覽器。保存該頁面將其保存爲var.xml。但是,右鍵單擊並保存,將其另存爲dynamicxml.php並作爲php文件類型。

我應該用htaccess處理事情還是有其他的選擇?

+1

*(阿里納斯)*考慮使用DOM在字符串連接生成XML文件。這確保了XML是有效的。 – Gordon 2010-07-04 12:27:23

+0

我不認爲這是一個有效性問題 – 2010-07-04 12:34:26

+1

@kgb這就是爲什麼它只是一個旁註;) – Gordon 2010-07-04 12:36:51

回答

0

你不應該這樣做,因爲瀏覽器通過「另存爲...」工作方式不同。例如chrome和opera會將你的文件保存爲.htm(可能)。我看到兩種可能的方法來解決這種情況(我不會去做任何一種):

  • 設置apache以處理xml爲php。 AddType text/xml php

  • 創建一個重寫規則重定向一切從.XML *在某些目錄dynamicxml.php

    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} -s [OR] 
    RewriteCond %{REQUEST_FILENAME} -l [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^.xml$ - [NC,L] 
    RewriteRule ^.xml$ dynamicxml.php [NC,L] 
    
相關問題