当前位置: 首页 > 面试题库 >

“ file_exists”问题中的特殊字符(php)

漆雕恺
2023-03-14
问题内容

我使用特殊字符(瑞典字母åäö)。

现在,我有一些文件夹,其中包含分类图像。文件夹按类别命名。

for ($i=1; $i<=5; $i++){
    if (file_exists($big_images.$i.'.jpg')){ echo "Inne";
        unlink($big_images.$i.'.jpg');
    }
    if (file_exists($thumb_images.$i.'.jpg')){
        unlink($thumb_images.$i.'.jpg');
        }
    }

我最多允许在我的网站上显示5张图片,每张图片以1-5卢比结尾。但是,我的问题是,每当文件夹名称包含特殊字符时,file_exists返回false,即找不到文件。即使它在那里。

所有文档均为utf-8格式。

当文件夹名称中没有特殊字符时,此方法有效。

如果您需要更多输入,请告诉我


问题答案:

什么是服务器操作系统?

如果是Windows,您将无法访问以UTF-8编码的文件名下的文件,因为PHP使用的C
IO库的Windows实现将仅在系统默认代码页中显示。对于西欧安装,代码页为1252。您可以使用iconv将UTF-8字符串转换为cp1252:

$winfilename= iconv('utf-8', 'cp1252', $utffilename);

utf8_decode也可以使用,但是对于映射到cp1252中范围0x80-0x9F的Windows扩展字符,它将给出错误的结果。)

PHP和其他使用stdio的程序完全无法访问名称中包含系统代码页指令表之外的字符的文件(例如,在西方语言中为希腊语)。有一些脚本语言可以通过Win32
API使用本机Unicode文件名,但是PHP5并不是其中一种。

当然,当将文件部署在UTF-8编码的不同OS上时,不应使用上述步骤。(即现代Linux。)

如果您需要与PHP无缝地跨服务器兼容,则必须避免在文件名中使用非ASCII字符。抱歉。



 类似资料:
  • 我试图登录与超文本传输协议后使用。 我有像会话这样的参数 授权AOrSwPpS0tB6XXICp8IVE-9aGSkGeYGFxEvucSJHYYDZ。Wp-24VvrLR4-6Y9QO。 会话ljvrB3JGxTpHFkrtUSyQXJSRz4E7w5uSwQmTqfWWRBA-DYRKPT58UJQPU 我无法登录。请建议我解决这个问题。

  • 所以我有这个文件(http://mountainmarathon.ch/components/com_chronoconnectivity6/chronoconnectivity/uploads/20190814194827_classifica-cat-standard-3.csv)哪个“应该”用utf-8编码。当我试图通过fgetcsv或file_get_内容读取内容时,我得到了那些黑色钻石,

  • 问题内容: 我正在编写用于更改JSON文件的脚本,但是当文件转换回JSON时,它将扩展特殊字符。 例如,JSON文件包含带有“&”的密码。复制问题的快速方法是使用以下命令: PS>“密码和123” | Convertto-Json输出为:“ Password \ u0026123” -这是简化的JSON FILE的示例 问题答案: 这是由的自动字符转义功能引起的,并且会影响多个符号,例如 Conv

  • 问题内容: 我在数据库中有包含特殊字符的单词(大多数情况下为西班牙语,如波浪号)。在数据库中,所有内容均已保存并使用PHPmyAdmin正确显示,但是当我获取数据(使用PHP)并将其显示在浏览器中时,我得到了一个奇怪的字符,例如“?”。用一个正方形…我需要一个一般性的修补程序,因此我不必每次都转义每个字符,而且我还可以将PHP表单中的特殊西班牙字符插入数据库中… HTML是正确的: 所有表和数据库

  • 关于字符集和替代字形 除键盘上可看到的字符之外,字体中还包括许多字符。根据字体的不同,这些字符可能包括连字、分数字、花饰字、装饰字、序数字、标题和文体替代字、上标和下标字符、变高数字和全高数字。字形是特殊形式的字符。例如,在某些字体中,大写字母 A 有几种形式可用,如花饰字或小型大写字母。 插入替代字形的方式有两种: 可以使用 “字形 ”面板来查看和插入任何字体中的字形。 可以使用 “OpenTy

  • 一些字符在 XML 中有特殊的含义,只能够通过其实体名称输入 字符 写法 缩写涵义 < &lt; less than > &gt; greater than & &amp; ampersand " &quot; quote ' &apos; apostrophe 空格 &nbsp; none-break space 通常需要使用实体输入的字符包括<、&、空格   XML 会将任意数量的空格解析为一