gpt4 book ai didi

php - 字符串中出现奇怪的非英文字符,服务器出错

转载 作者:行者123 更新时间:2023-11-29 14:13:29 25 4
gpt4 key购买 nike

首先,我的代码可以正常工作...但是生成的文件导致我的服务器出现问题。只有带有奇怪字符的文件才会导致服务器出现错误,例如文件不存在或尝试通过 FTP 打开文件时连接到文件时出错。所有没有奇怪字符的文件在服务器上都可以正常工作,可以打开和编辑。

这是我的工作流程:

  1. 从用户屏幕上的 TextView 获取文本,通过此代码运行它以删除不需要的字符:

replaceAll("[^a-z ,()A-Z0-9]+", "-");

  1. 使用此文本作为文件名创建一个文本文件;
  2. 使用此 PHP 脚本将此文本文件上传到服务器:

    <?php

    $file_path = "uploads/";

    $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
    echo "success";
    } else{
    echo "fail";
    }
    ?>

文件名包含这些奇怪的字符,我假设是由于用户屏幕上的非英文字符所致。

enter image description here

我需要小心,因为上传文件到我的服务器的路径是基于这个文件名的,我不知道如何用非英文字符测试它。任何帮助深表感谢。我需要在不弄乱文件路径的情况下删除/替换任何非英文字符。

最佳答案

从技术上讲,您可以通过使用 mb_convert_encoding 将服务器上的字符串转换为 UTF-8 来解决此问题,但实际上您的代码非常不安全,因为您使用传递的用户变量作为文件路径,黑客可以发送/../../../等等。
我对两者都使用的解决方案是使用 bin2hex 在服务器上将传递的文件名转换为十六进制字符串。这样你就有了一个非常安全的文件名,没有编码问题。

关于php - 字符串中出现奇怪的非英文字符,服务器出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38604670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com