You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PhpWord运行报错:找不到PhpWord.php文件,求解决方案

服务器运行PhpWord报错的解决方法

代码文件

autoload.php

<?php
function loadLibraries($class) {
    $path = __DIR__.'/lib/';
    require_once $path.$class.".php";
}

spl_autoload_register("loadLibraries");
?>

zml.php

<?php
error_reporting(E_ALL);

require "autoload.php";

// 创建PHPWord对象
use \PhpOffice\PhpWord\PhpWord;

$phpWord = new PhpWord();

// 添加文档节
$section = $phpWord->addSection();

// 添加文本内容
$section->addText('Hello, World!');

// 保存文档
$filename = 'hello_world.docx';
$phpWord->save($filename);

echo "Word文档 '$filename' 已生成。";
?>

报错信息

Warning: require_once(/zmluvy/lib/PhpOffice\PhpWord\PhpWord.php): failed to open stream: No such file or directory in /zmluvy/autoload.php on line 4
Fatal error: require_once(): Failed opening required '/zmluvy/lib/PhpOffice\PhpWord\PhpWord.php' (include_path='.:/usr/share/pear/') in /zmluvy/autoload.php on line 4

文件结构

  • autoload.php:/zmluvy/
  • zml.php:/zmluvy/
  • PhpWord.php:/zmluvy/lib/PhpOffice/PhpWord/

解决建议

报错根源是命名空间的反斜杠与服务器路径分隔符不兼容:使用use \PhpOffice\PhpWord\PhpWord时,自动加载函数接收的$class值为PhpOffice\PhpWord\PhpWord,直接拼接后生成的路径含反斜杠\,但服务器实际文件路径用正斜杠/,导致文件查找失败。

修改autoload.php,将命名空间中的反斜杠替换为系统目录分隔符即可:

<?php
function loadLibraries($class) {
    $path = __DIR__.'/lib/';
    // 替换命名空间反斜杠为系统目录分隔符,兼容Windows/Linux环境
    $classPath = str_replace('\\', DIRECTORY_SEPARATOR, $class);
    require_once $path . $classPath . ".php";
}

spl_autoload_register("loadLibraries");
?>

如果确认服务器是Linux环境,也可直接替换为正斜杠:

$classPath = str_replace('\\', '/', $class);

额外建议:优先使用Composer管理PhpWord依赖并自动加载,避免手动编写自动加载函数出现路径适配问题。

内容的提问来源于stack exchange,提问作者Stanley01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:50:14