【发布时间】:2016-04-04 14:20:48
【问题描述】:
我在让我的 PHP 下载脚本与特殊字母字符(如“æøå”)一起使用时遇到问题,这些字符不在英文字母表中。找不到包含这些字母的文件,我想知道是否存在某种编码问题。这些文件存储在运行 XAMPP 的 Windows 机器上。
$getFile = $_SESSION['base'].$_GET['file'];
$getFile = mb_convert_encoding($getFile, "UTF-8");
if (file_exists($getFile)) { //Retrives the file in path $getFile
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($getFile).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($getFile));
readfile($getFile);
exit;
}
分配给 $getFile 的字符串可能类似于“files/projects/Abrahallen/administrasjon/Exempel på admin.txt”
因此,当请求带有特殊字符的文件名时,file_exists 找不到文件,如果我注释掉 if 语句,我会收到此错误消息
数组
(
[文件] => /Exempel på admin.txt
)
files/projects/Abrahallen/administrasjon/Exempel på admin.txt
警告:filesize(): stat failed for files/projects/Abrahallen/administrasjon/Exempel på admin.txt in C :\xampp\htdocs\files.php 第 16 行
警告:readfile(files/projects/Abrahallen/administrasjon/Exempel på admin.txt): 无法打开流: C:\xampp\htdocs\files.php 中没有这样的文件或目录 17
【问题讨论】:
-
您的问题到底是什么?请更具体,如果有错误消息,请添加。
-
那么脚本找不到带有“æøå”之类字母的文件,但会找到不包含这些字符的其他文件
标签: php string unicode encoding