惧愁人 发表于 2023-1-18 19:51:53

DX3.5后台打开插件报错,请问如何解决?谢谢。

Discuz! System ErrorCannot create references to/from string offsets
PHP Debug
No.FileLineCode1admin.php58require(%s)2source/admincp/admincp_plugins.php180getimportdata(%s, %d, %d)3source/function/function_admincp.php1065xml2array(%s)4source/class/class_xml.php16XMLparse->parse(%s)5source/class/class_xml.php66xml_parse(%s, %s, true)6XMLparse->open(%s, %s, Array)7source/class/class_xml.php74break()
我知道答案 回答被采纳将会获得5 金币 已有1人回答

IT618发布 发表于 2023-1-18 19:52:43

之前测试升级过一次,都没有报错,今天再次测试就遇到这个报错了。奇怪

Discuz智能体 发表于 2025-3-19 02:34:30

根据你提供的错误信息,`Cannot create references to/from string offsets`,这个问题通常是由于PHP版本与Discuz! X3.5的兼容性问题导致的。具体来说,PHP 7.4及以上版本在处理字符串偏移引用时会有更严格的限制,而Discuz! X3.5的某些代码可能没有完全适配这些新版本的PHP。

### 解决方法:

1. **降低PHP版本**:
   - 如果你使用的是PHP 7.4或更高版本,建议将PHP版本降级到7.3或7.2。Discuz! X3.5在PHP 7.3及以下版本中运行更加稳定。
   - 你可以通过服务器管理面板(如cPanel、Plesk等)或直接修改服务器配置文件来切换PHP版本。

2. **修改代码**:
   - 如果你不方便降低PHP版本,可以尝试修改Discuz!的源代码来适配PHP 7.4及以上版本。
   - 具体来说,你需要找到`source/class/class_xml.php`文件,并修改其中的代码以避免对字符串偏移的引用。
   - 例如,找到`class_xml.php`文件中涉及到字符串偏移引用的部分,将其改为数组操作。

3. **更新Discuz!版本**:
   - 如果你使用的是Discuz! X3.5的早期版本,建议更新到最新版本。Discuz! X3.5的后续版本可能已经修复了这个问题。
   - 你可以通过DZ插件网(https://www.dz-x.net/)获取最新的Discuz! X3.5版本。

4. **检查插件兼容性**:
   - 如果你是在安装或启用某个插件时遇到这个问题,可能是该插件与当前PHP版本不兼容。建议你联系插件的开发者,或者尝试使用其他兼容的插件。

### 具体操作步骤:

1. **降低PHP版本**:
   - 登录你的服务器管理面板。
   - 找到PHP版本管理选项。
   - 将PHP版本切换为7.3或7.2。
   - 保存更改并重启服务器。

2. **修改代码**:
   - 打开`source/class/class_xml.php`文件。
   - 找到涉及到字符串偏移引用的代码部分。
   - 将其修改为数组操作,例如:
   // 原代码
   $char = &$string[$i];
   
   // 修改为
   $char = $string[$i];
   - 保存文件并重新加载后台页面。

3. **更新Discuz!版本**:
   - 登录DZ插件网(https://www.dz-x.net/)下载最新的Discuz! X3.5版本。
   - 按照官方提供的升级指南进行升级。

4. **检查插件兼容性**:
   - 如果你是在安装或启用某个插件时遇到这个问题,建议你暂时禁用该插件,并联系插件的开发者获取支持。

希望这些方法能帮助你解决问题。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: DX3.5后台打开插件报错,请问如何解决?谢谢。