当前位置: 首页 > 知识库问答 >
问题:

我如何为IOFactory.php设置路径

朱鸿畅
2023-03-14

下面是我的本地主机目录结构- htdocs\software\office_admin\exam_excel\Classes\PHPExcel.php htdocs\software\office_admin\

exam_excel\Classes\PHPExcel\IOFactory.php htdocs\software\office_admin\include\
classes\myownclassfiles.php
htdocs\software\office_admin\include\example.inc.php

当我使用IOFactory.phpexample.inc.php使用

require_once 'Classes/PHPExcel.php';<br>
require_once 'Classes/PHPExcel/IOFactory.php';

我得到了警告列表,这里有2-3个样本-

警告:include_once(包含/classes/class。PHPExcel_Shared_String.php):无法打开流:第26行的C:\ xampp \ htdocs \ manazeschool \ software \ office _ admin \ index . PHP中没有这样的文件或目录

警告:include_once():无法打开'包括/类/class.PHPExcel_Shared_String.php'包含(include_path='.; C:\xampp\php\PEAR')在C:\xampp\htdocs\manazeschool\软件\office_admin\index.php第26行

警告:include_eonce(includes/classes/class.PHPExcel_Reader_Excel2007.php):无法打开流:C:\xamp\htdocs\manzeschool\software\office_admin\index中没有此类文件或目录。php第26行

警告:include_once():打开“包含/类/类”失败。PHPExcel_Reader_Excel2007.php“表示包含 (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\manazeschool\software\office_admin\index.php 在第 26 行

我自己定制的班级路径设置-

if (!defined("INCLUDES_CLASS_PATH")) {
    define("INCLUDES_CLASS_PATH", "includes/classes");
}

$path_arr = explode('/', $_SERVER['PHP_SELF']);
$cur_foldpath =  count($path_arr)-3;
//This variable is for avoiding the unautherized page access 

if (!defined('FROMINDEX')) {    
   define('FROMINDEX', true);
}
if (!defined('DS')) {
   define('DS', '/');
}   
include_once('includes/config.inc.php');
   //class
   function __autoload($class_name) {
    include_once INCLUDES_CLASS_PATH . DS . "class." . $class_name . '.php';
   }    
   include (INCLUDES_CLASS_PATH . DS .'developer.mysql.class.php');
   include (INCLUDES_CLASS_PATH . DS . 'validation.class.php');
   include (INCLUDES_CLASS_PATH . DS . 'html_form.class.php');
   //files
   include (INCLUDES_PATH . DS .'messages.inc.php');
   include (INCLUDES_PATH . DS . 'functions.inc.php');
.....
}

我该如何克服这些警告

共有1个答案

公冶俊达
2023-03-14

PHPExcel提供了自己的符合SPL的自动加载器;用spl_autoload_register()注册自己的自动加载器,两者应该协同工作-有关详细信息,请参阅开发人员留档中题为“Lazy Loader”的第3.2节

编辑

如果您修改自己的自动加载器以在包含类文件之前测试该类文件的存在(使用file_exists()),如果该类文件不存在则返回false(仅在它存在时包含它),那么这应该会起作用

function myAutoload($class_name) { 
    if (!file_exists(INCLUDES_CLASS_PATH . DS . "class." . $class_name . '.php')) { 
        return false; 
    } 
    include_once INCLUDES_CLASS_PATH . DS . "class." . $class_name . '.php'; 
} 

 spl_autoload_register('myAutoload');

然后确保包含Classes/PHPExcel/IOFactory。php正在正确的目录中查找文件。PHPExcel IOFactory将向SPL注册PHPExcel自动加载器。

当请求自动加载类时,SPL 应首先使用自动加载器处理检查,这将为 PHPExcel 类(以及任何其他找不到的类)返回 false;然后 SPL 应该调用 PHPExcel 自动加载器,它将加载任何 PHPExcel 类。

 类似资料:
  • 我想解决我的类问题,你能告诉我怎么做吗? null

  • 我用eclipse创建了一个maven项目,并用下面的命令制作了jar文件 打包 当我尝试知道我的mvn项目配置是真的还是不是这个命令 mvn exec:Java-D exec . main class = " giraph . hello world . app " 我得到这个错误: 在helloworld项目上执行目标 org.codehaus.mojo: exec-maven-plugin:

  • 我希望设置所有RESTEasy资源的基路径,而不需要包含扩展的类。 基本上我想摆脱: 我怎样才能做到呢?

  • 使用指南 - 统计设置 - 转化设置 - 转化路径如何设置 在设置页面转化时,选择开启转化路径。 点击开启后界面如图所示: 若到达目标页面需要多个步骤,可点击①位置增加步骤。 若该步骤可以有多个页面,经过其中任意一个页面都算作经过该步骤,可以点击②位置增添该步骤的网址,网址内容也支持使用通配符。 系统默认只要到达目标页面都会计为转化。若我们认为必须经过某个步骤后到达目标页面的行为才可以计为转化,可

  • 我可以为我的vaadin fileupload组件设置默认上载路径吗?我想设置一些上载路径到我的vaadin组件。如果有人不选择上传任何文件,我的特定文件将被上传。有可能吗? 例如:I would like to do as

  • 我的源代码位于如下文件夹结构中: MyGitroot/MyProj/Module1/SRC/Main/Groovy/COM/MyPak/Module1 MyGitroot/MyProj/Module2/SRC/Main/Groovy/COM/MyPak/Module2 MyGitroot/MyProj/Module3/SRC/Main/Groovy/COM/MyPak/Module3 Gradle