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

Php 用于解析XLS文件的未定义类,php,class,xls,Php,Class,Xls,我需要通过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() ); } e

我需要通过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();
}
改变

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

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


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

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

require_once './vendor/autoload.php';
这只需要运行一次,因此可能位于现有的
\u inc/bootstrap.php
文件中,在该文件中,您需要向上移动一个目录,因此行为:

require_once '../vendor/autoload.php';
(请注意,
require_once
是一个关键字,而不是函数,因此不需要括号,在复杂情况下添加括号可能会导致混淆。)

正如Script47在另一个回答中指出的,您似乎还混淆了两个名称类似的包:

  • 定义用于读取旧格式
    .xls
    二进制文件的类
    SimpleXLS
  • 定义一个类
    SimpleXLSX
    ,用于读取较新的
    .xlsx
    压缩的XML文件

您是否尝试过
composer dump autoload
?是的,问题仍然存在!“Undefined cass”@script47
var\u转储什么(文件存在('./vendor/shuchkin/simplexls/src/simplexls.php'))
show?它返回bool(true)@这就是问题所在。谢谢!
require_once '../vendor/autoload.php';