灰儿 发表于 2022-9-1 11:19:58

Veno-File-Manager (VFM4)让用户私有文件夹(dir)显示中文编码

Veno-File-Manager (VFM4)让用户私有文件夹(dir)显示中文编码
在二次开发Veno-File-Manager (VFM4)云盘系统时,发现根目录/vfm-admin/_content/users/users.php用户信息文件,其中的的用户文件夹数组中,键值中的中文字符为“\uXXXX”格式表示的字符串,如:
array (
    'name' => 'user',
    'pass' => '$1$osKFVhQd$onDS9JSlGSWAKqR.Hnu5F.',
    'role' => 'user',
    'dir' => '["user","temp","\\u516c\\u5171\\u8d44\\u6e90"]',
),
其中XXXX是16进制数字的字符串表示形式,这个叫Unicode 转义字符, 如何将其解码还原成相应的中文字符呢?
网上百度了很多方法都无法解决,后来发现实际上只需要调用PHP的 json_decode函数来解码就可以了。

解码:
$dirs = json_decode($dir)

编码:
Unicode 转义字符编码函数为:
$dirs = joson_encode($dir)

相关文件:
根目录/vfm-admin/admin-panel/view/users/modal-user.php
根目录/vfm-admin/admin-panel/view/users/new-user.php

管理后台中,“新建用户文件夹”提交界面代码:
<div class="col-md-6 mb-3">
    <label class="form-label"><?php echo $setUp->getString("make_directory"); ?></label>
    <div class="input-group">
      <div class="input-group-text">
            <i class="bi bi-folder"></i>
      </div>
      <input type="text" class="form-control getfolder assignnew" name="userfolder" placeholder="<?php echo $setUp->getString("add_new"); ?>">
    </div>
</div>
<!-- col-md-6 -->
页: [1]
查看完整版本: Veno-File-Manager (VFM4)让用户私有文件夹(dir)显示中文编码