Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql数据库中,zip中插入英镑符号的文件名为空_Php_Mysql_Zip - Fatal编程技术网

Php 在mysql数据库中,zip中插入英镑符号的文件名为空

Php 在mysql数据库中,zip中插入英镑符号的文件名为空,php,mysql,zip,Php,Mysql,Zip,我有一个zip文件a.zip,其中包含多个文件。当我试图在我的数据库字段中插入文件名时,在其中一个字段中它被作为空白插入 以下是我正在使用的代码:- $filename = "A.zip"; $zip = zip_open($filename); if ($zip) { while ($zip_entry = zip_read($zip)) { $zip_file_name = zip_entry_name($zip_entry)

我有一个zip文件a.zip,其中包含多个文件。当我试图在我的数据库字段中插入文件名时,在其中一个字段中它被作为空白插入

以下是我正在使用的代码:-

    $filename = "A.zip";
    $zip = zip_open($filename); 
    if ($zip) {
        while ($zip_entry = zip_read($zip)) {
            $zip_file_name = zip_entry_name($zip_entry);
            $zip_file_name = preg_replace("/([!?:%,\[\]@{+;}=*<>~#\"^&*|()\\/])/", " ",$zip_file_name);
            // Every single time, the file name is read, it is inserted in the database

    }
    zip_close($zip);
}
zip文件中的文件名:- 1 178_!英镑$%^&{~~.xslx 2 128英镑$%^{.xslx

我将用空格替换所有必需的特殊字符,但插入时需要在文件名中保留美元和英镑

现在,所有必需的字符都被正确地替换为空格,$也被正确地放置,但是当涉及到磅符号时,它被替换为一个黑色菱形问号,当我记录控制台日志时,数据库中插入了一个空白文件名

在数据库中插入单个文件时,将正确插入带有$和英镑符号的文件

数据库中的字段名为varchar255,utf8_general_ci作为排序规则

此外,元标记设置为字符集UTF-8:-

我曾尝试通过互联网寻找解决方案,但找不到与zip文件相关的解决方案

请注意:所有带有简单英文字符和数字的文件名都正确地插入到数据库中

另外,当我删除英镑符号时,文件名被正确插入


请..非常感谢您的帮助!!

您的文件名使用的是什么字符编码?使用的编码是UTF8。您确定文件名是UTF-8吗?如果是Windows-1252或其他什么东西呢?preg\u replace函数后$zip\u file\u name的内容是什么?另外,我没有看到任何将文件名插入数据库的代码。请提供更多信息判定元件。