【问题标题】:PEAR Spreadsheet Excel Writer AutoloadPEAR 电子表格 Excel Writer 自动加载
【发布时间】:2011-02-04 12:21:19
【问题描述】:

您好,我正在尝试将 Excel 电子表格编写器功能折叠到现有应用程序中。我正在使用带有命名空间的 php 5.3,并且很难加载必要的类。

我认为问题在于文件名是“Writer.php”,但类方法是“Spreadsheet_Excel_Writer()”。我的自动加载器是这样设置的:

function __autoload($class) {
    $class = str_replace('\\', '/', $class);

    $splitArray = explode("_", $class);
    $class = $splitArray[(sizeof($splitArray) - 1)]; // piece1

    include($class . '.php');
}

它可以很好地加载我的其余课程,但无法加载电子表格的课程。如果我重命名文件以匹配方法名称,则尝试加载 OLE 类时会失败。我真的不想去重命名 PEAR 中的所有类以使其正常工作。

有人知道更好的解决方法吗?

谢谢!

【问题讨论】:

标签: php excel pear spreadsheet autoload


【解决方案1】:

尝试将您的PEAR 路径添加到您的include_path,然后

require_once "Spreadsheet/Excel/Writer.php"

您可能还想明确要求 OLE 类。

根据您的操作系统,文件名也可能区分大小写。

【讨论】:

  • 它仍然给我一个错误:Fatal error: Class 'utilities\Spreadsheet_Excel_Writer' not found in utilities/Spreadsheet.php on line 23' 我想是因为自动加载器正在寻找“Spreadsheet_Excel_Writer.php”
  • 那是你需要在自动加载器中处理的事情
【解决方案2】:

我想出了如何让类加载,但是,它会导致更多问题。似乎 PEAR(或至少共享主机上的 PEAR 版本)与 php 5.3 命名空间不兼容。

所以当我最终加载类时,我最终无法加载 PEAR。

作为一种解决方法,我最终编写了一个 XLS 格式的 XML 文档并将其保存为 .xls 文件。这可能不是一个完美的解决方案,但它确实有效。

感谢您的意见!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-13
    • 2014-03-12
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多