php產生檔案名稱亂碼的解決方法:1、將所有的號碼替換為「」;2、新增「header("Content-type: application/vnd.ms-excel");」;3 、刪除「filename=xxx」兩邊的空格。
本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
PHP匯出檔案名稱亂碼解決
問題場景:
統計資料需要增加一個到處excel功能, 於是使用composer安裝了phpspreadsheet元件,進行資料處理並匯出。遇到ASCII命名的檔名時, 都是導出一切正常, 但是遇到中文檔名時,導出的檔名是亂碼的。
此處直接貼出解決方案:
1. 檔名處理
因為PHP的urlencode函數會將各種空白字元轉碼為號, 這個號無論是chrome還是Firefox都是不會轉義的
所以這裡將所有的號再次替換為
$file_name = '导出文件.xls'; // 这是原本要导出的文件名 $encoded_filename = url_encode($file_name);// 将文件名进行urlencode转码 $encoded_filename = str_replace('+', '%20', $encoded_filename);
#2 . 頭文件:文件類型聲明
如果導出的是一個文件,不是確定的excel類型時,使用文件頭No.1
我導出的是一個excel下xls格式的表格,所以, 我使用的是文件頭 No.2
// 文件头No.1: 告诉浏览器这里要有一个文件流输出 header("Content-type: application/octet-stream"); // 文件头No.2: 告诉浏览器这里要输出一个excel文件 header("Content-type: application/vnd.ms-excel");
頭檔: 下載檔名宣告
這一步是關鍵, 有兩個需要注意的地方
無論是filename=xxx或filename*=xxx, 等號兩邊不要有空格
filename*=xxx, 這個設定項其實是由3部分組成的, 分別是字元集(utf8)、語言(空)和urlencode過的檔名, 其中, 語言是一個空字串, 用單引號引起來, 三個部分之間不要有空格。
header('Content-Disposition: attachment; filename="foo-%c3%a4.xls"; filename*=UTF-8\'\'foo-%c3%a4.xls');
我採用如上程式碼分別使用chrome, firefox, 360, ie11測試都運作良好。希望也能幫到你。
【推薦學習:PHP影片教學】
#以上是如何解決php產生檔名亂碼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1
好用且免費的程式碼編輯器