奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

php語言

如何在PHP下載文件名中解決亂碼的問題

時間:2025-05-01 03:01:50 php語言 我要投稿
  • 相關推薦

如何在PHP下載文件名中解決亂碼的問題

  文章是對如何在PHP下載文件名中解決亂碼的問題進行了詳細的分析介紹,需要的朋友參考下。

  通過把Content-Type設置為application/octet-stream,可以把動態生成的內容當作文件來下載,相信這個大家都會。那么用Content-Disposition設置下載的文件名,這個也有不少人知道吧;旧希螺d程序都是這么寫的:

  復制代碼 代碼如下:

  $filename = "document.txt";

  header('Content-Type: application/octet-stream');

  header('Content-Disposition: attachment; filename=' . $filename);

  print "Hello!";

  ?>

  但是,如果$filename是UTF-8編碼的,有些瀏覽器就無法正常處理了。比如把上面那個程序稍稍改一下:

  復制代碼 代碼如下:

  $filename = "中文 文件名.txt";

  header('Content-Type: application/octet-stream');

  header('Content-Disposition: attachment; filename=' . $filename);

  print "Hello!";

  ?>

  輸出的header實際上是這樣子:

  Content-Disposition: attachment; filename=中文 文件名.txt其實按照RFC2231的定義,多語言編碼的Content-Disposition應該這么定義:

  Content-Disposition: attachment; filename*="utf8''%E4%B8%AD%E6%96%87%20%E6%96%87%E4%BB%B6%E5%90%8D.txt"即:

  ?filename后面的等號之前要加 *

  ?filename的值用單引號分成三段,分別是字符集(utf8)、語言(空)和urlencode過的文件名。

  ?最好加上雙引號,否則文件名中空格后面的部分在Firefox中顯示不出來

  ?注意urlencode的結果與php的urlencode函數結果不太相同,php的urlencode會把空格替換成+,而這里需要替換成%20

  經過試驗,發現幾種主流瀏覽器的支持情況如下:

  IE6

  attachment; filename=""

  FF3

  attachment; filename="UTF-8文件名"

  attachment; filename*="utf8''"

  O9

  attachment; filename="UTF-8文件名"

  Safari3(Win)

  貌似不支持?上述方法都不行

  這樣看來,程序必須得這樣寫才能支持所有主流瀏覽器:

  復制代碼 代碼如下:

  $ua = $_SERVER["HTTP_USER_AGENT"];

  $filename = "中文 文件名.txt";

  $encoded_filename = urlencode($filename);

  $encoded_filename = str_replace("+", "%20", $encoded_filename);

  header('Content-Type: application/octet-stream');

  if (preg_match("/MSIE/", $ua)) {

  header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');

  } else if (preg_match("/Firefox/", $ua)) {

  header('Content-Disposition: attachment; filename*="utf8/'/'' . $filename . '"');

  } else {

  header('Content-Disposition: attachment; filename="' . $filename . '"');

  }

  print 'ABC';

  ?>

【如何在PHP下載文件名中解決亂碼的問題】相關文章:

解決PHP中文亂碼問題05-27

完美解決PHP中文亂碼問題07-18

php如何解決中文亂碼問題03-30

php中文亂碼問題的解決方案08-13

php各種應用亂碼問題的解決方法05-31

關于php中文亂碼的解決方法07-09

java如何解決亂碼問題06-20

php中curlpost 時出現的問題解決08-12

修改注冊表解決Dreamweaver亂碼問題06-01

主站蜘蛛池模板: 普兰店市| 三亚市| 博乐市| 额济纳旗| 昭苏县| 赣榆县| 蕲春县| 荥经县| 连云港市| 黑水县| 布拖县| 神木县| 鄂托克前旗| 武乡县| 连城县| 瑞丽市| 托克逊县| 盐山县| 灵丘县| 三河市| 渭源县| 武义县| 阿拉善盟| 郸城县| 济南市| 郎溪县| 嘉定区| 四子王旗| 波密县| 永善县| 内乡县| 浙江省| 大姚县| 连平县| 上虞市| 红河县| 白山市| 海晏县| 海丰县| 凤台县| 固安县|