用于解析XLS文件的未定义类

问题描述 投票:1回答:2

我需要我通过composer安装的SimpleXLS包类,但是当我尝试测试它时,我的SimpleXLSX看起来像是未定义的。

<?php

include './_inc/bootstrap.php';
require_once('./vendor/shuchkin/simplexls/src/SimpleXLS.php');
if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
    print_r( $xlsx->rows() );
} else {
    echo SimpleXLSX::parseError();
}
php class xls
2个回答
1
投票

更改,

if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {

至,

if ( $xlsx = SimpleXLS::parse('book.xlsx') ) {

SimpleXLSX的任何引用更改为SimpleXLS,因为根据this,该类称为SimpleXLS,而不是SimpleXLSX

注意:如果包含自动加载器,Composer将处理自动加载。


1
投票

使用Composer时,通常不应该在包中包含特定文件,只应包含Composer生成的自动加载器:

require_once './vendor/autoload.php';

这只需要运行一次,因此可以在你现有的_inc/bootstrap.php文件中,你需要在一个目录中,所以该行将是:

require_once '../vendor/autoload.php';

(请注意,require_once是一个关键字,而不是一个函数,所以不需要括号,添加它们可能会在复杂的情况下造成混淆。)

正如Script47在一个单独的答案中指出的那样,你似乎也混淆了两个同名的包:

© www.soinside.com 2019 - 2024. All rights reserved.