我已经下载了一个非常小的示例文件,我正在尝试让PHPWord工作。我收到以下错误消息,无法找出原因。
PHP致命错误:Class' PHPWord'在第6行的/var/www/html/PhpOffice/ex_01.php中找不到
我下载的小样本程序是:
<?php
require_once 'PhpWord.php';
echo realpath (dirname(__FILE__)) . "\n";
$PHPWord = new PHPWord(); <-- <-- <-- LINE 6 HERE
$section = $PHPWord->createSection();
$section->addText('Hello world!');
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=helloWorld.docx");
header("Content-Type: application/docx");
header("Content-Transfer-Encoding: binary");
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('helloWorld.docx');
?>
互联网分发的PhpWord.php文件对于发布来说有点大,但关键点是第43和44行以及第4行包含匹配拼写和匹配大写/小写的类代码:
class PHPWord
{
出于调试目的,我从命令行运行代码。这似乎给了我有意义的错误信息。
&#34;要求&#34;好像在找文件。 &#34; echo dirname&#34;发布&#34;的/ var / www / html等/ PhpOffice&#34;这是两个文件的正确位置。另外,作为一个实验,我在&#34;要求&#34;中添加了一个拼写错误的文件名。声明,这导致找不到&#34;文件&#34;错误。因此,&#34;要求&#34;看起来不错。
我有一些PHP的经验,但这是我第一次阅读PHP中的类和命名空间。到目前为止,我不知道出了什么问题。有什么建议吗?
谢谢你, 布鲁斯
答案 0 :(得分:1)
我第一次阅读PHP中的类和命名空间
如果PhpWord.php
中的内容与namespace XYZ
类似;
然后你也要在脚本的第一行放置use \XYZ\PHPWord;
。
如果您在命名空间内并且该类没有,那么您必须使用$PHPWord = new \PHPWord();
如果您没有autoloader
,那么您也包含属于PHPOffice
的所有文件,然后您可以使用use \PHPOffice\PHPWord();
答案 1 :(得分:-1)