热搜词
发表于 2022-9-1 11:19:58 | 显示全部楼层 |阅读模式
Veno-File-Manager (VFM4)让用户私有文件夹(dir)显示中文编码
在二次开发Veno-File-Manager (VFM4)云盘系统时,发现根目录/vfm-admin/_content/users/users.php用户信息文件,其中的的用户文件夹数组中,键值中的中文字符为“\uXXXX”格式表示的字符串,如:
  1.   array (
  2.     'name' => 'user',
  3.     'pass' => '$1$osKFVhQd$onDS9JSlGSWAKqR.Hnu5F.',
  4.     'role' => 'user',
  5.     'dir' => '["user","temp","\\u516c\\u5171\\u8d44\\u6e90"]',
  6.   ),
复制代码

其中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

管理后台中,“新建用户文件夹”提交界面代码:
  1. <div class="col-md-6 mb-3">
  2.     <label class="form-label"><?php echo $setUp->getString("make_directory"); ?></label>
  3.     <div class="input-group">
  4.         <div class="input-group-text">
  5.             <i class="bi bi-folder"></i>
  6.         </div>
  7.         <input type="text" class="form-control getfolder assignnew" name="userfolder" placeholder="<?php echo $setUp->getString("add_new"); ?>">
  8.     </div>
  9. </div>
  10. <!-- col-md-6 -->
复制代码

全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-27 19:48 , Processed in 0.157148 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team