找不到PHP类,但成功包含了类文件

时间:2016-01-21 22:37:18

标签: php class

我已经下载了一个非常小的示例文件,我正在尝试让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中的类和命名空间。到目前为止,我不知道出了什么问题。有什么建议吗?

谢谢你, 布鲁斯

2 个答案:

答案 0 :(得分:1)

  

我第一次阅读PHP中的类和命名空间

如果PhpWord.php中的内容与namespace XYZ类似; 然后你也要在脚本的第一行放置use \XYZ\PHPWord;

如果您在命名空间内并且该类没有,那么您必须使用$PHPWord = new \PHPWord();

如果您没有autoloader,那么您也包含属于PHPOffice的所有文件,然后您可以使用use \PHPOffice\PHPWord();

答案 1 :(得分:-1)

远程服务器的解决方案(我解决了GoDaddy的问题):

如果您使用的是cpanel,则可能已安装zip扩展程序但未激活。你需要激活它。在这种情况下,您需要转到cpanel&gt; <内部软件部分>点击PHP版本。然后找到拉链并检查它。现在保存。

You should see like the image.

刷新您的申请页面。