Fatal error: Class ‘PHPExcel_Worksheet’ not found in /htdocs/webapp/includes/libs/PHPExcel.php on line 114

PHPExcel.php第114行内容

$this->_workSheetCollection[] = new PHPExcel_Worksheet($this);

PHPExcel使用了自动载入class

PHPExcel/Autoloader.php 第43行输入调试代码

echo $pObjectFilePath;

var_dump(file_exists($pObjectFilePath));

echo “

“;

if ((file_exists($pObjectFilePath) === false) || (is_readable($pObjectFilePath) === false)) {

return false;

}

/htdocs/webapp/includes/libs/PHPExcel/Shared/ZipStreamWrapper.phpbool(true)

/htdocs/webapp/includes/libs/PHPExcel/Worksheet.phpbool(false)

Fatal error: Class ‘PHPExcel_Worksheet’ not found in /htdocs/webapp/includes/libs/PHPExcel.php on line 114

Worksheet.php文件没有存在?

反复检查了php中open_basedir,文件及目录权限,zip扩展,pear都没问题.

并在autoloader前用代码测试文件确实可以检测到.

var_dump(file_exists(‘/htdocs/webapp/includes/libs/PHPExcel/Worksheet.php’));

试了下把ZipStreamWrapper.php禁止载入后就可顺利通过.

注释PHPExcel.php第34行内容

PHPExcel_Autoloader::Register();

//PHPExcel_Shared_ZipStreamWrapper::register();

看来问题确实在这里,再用代码确认下是stream_register_wrapper和file_exists的bug

class VariableStream {

var $position;

var $varname;

function stream_open($path, $mode, $options, &$opened_path)

{

$url = parse_url($path);

$this->varname = $url[“host”];

$this->position = 0;

return true;

}

function stream_read($count)

{

$ret = substr($GLOBALS[$this->varname], $this->position, $count);

$this->position += strlen($ret);

return $ret;

}

function stream_write($data)

{

$left = substr($GLOBALS[$this->varname], 0, $this->position);

$right = substr($GLOBALS[$this->varname], $this->position + strlen($data));

$GLOBALS[$this->varname] = $left . $data . $right;

$this->position += strlen($data);

return strlen($data);

}

function stream_tell()

{

return $this->position;

}

function stream_eof()

{

return $this->position >= strlen($GLOBALS[$this->varname]);

}

function stream_seek($offset, $whence)

{

switch($whence) {

case SEEK_SET:

if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {

$this->position = $offset;

return true;

} else {

return false;

}

break;

case SEEK_CUR:

if ($offset >= 0) {

$this->position += $offset;

return true;

} else {

return false;

}

break;

case SEEK_END:

if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {

$this->position = strlen($GLOBALS[$this->varname]) + $offset;

return true;

} else {

return false;

}

break;

default:

return false;

}

}

}

var_dump(file_exists(‘/htdocs/webapp/includes/libs/PHPExcel.php’));

stream_register_wrapper(“var”, “VariableStream”)

or die(“Failed to register protocol”);

var_dump(file_exists(‘/htdocs/webapp/includes/libs/PHPExcel.php’));

输出结果

bool(true) bool(false)

解决方法:

1.注释PHPExcel.php第34行内容

PHPExcel_Shared_ZipStreamWrapper::register();

2.更换php版本

目前换成php.5.2.14没有问题

php 2010excel,PHPExcel在php5.2.10上的bug相关推荐

  1. win7+php5.3.10下安装memcache (转)

    因为升级到了5.3.10,所以之前的dll不能使用了,弄了好久,终于还是在老外的博客上找到了解决方法: (环境是win7+php5.3.10+win32) 1.解压附件memcached到某个目录,本 ...

  2. 如何在Ubuntu 14.10 上安装WordPress?

    如果你想快捷.简单.免费的创建个人网站的话,WordPress 是你最佳的选择. WordPress 是一种使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架 ...

  3. mysql 5.6 64 位安装 缺少libai.so_CentOS6.7安装部署LNMP(nginx1.8.0+php5.6.10+mysql5.6.12) 法外狂徒...

    IP-10.0.0.8 1.安装nginx mkdir -p /server/tools cd /server/tools yum install -y pcre pcre-devel openssl ...

  4. Windows7/10上配置OpenCV3.3.0-Python3.6.2操作步骤

    目前OpenCV无论是2.4.x还是最新的3.3.0版本,默认支持的都是Python 2.7版本.这里介绍下如何使OpenCV 3.3.0支持Python 3.6.2的操作步骤: 1. 从  http ...

  5. LAMP(httpd 2.4.1 + mysql-5.5.19 + php-5.3.10)编译安装

    LAMP(httpd 2.4.1+mysql-5.5.19+php-5.3.10)编译安装 一.安装开发包组: yum groupinstall "Development Tools&quo ...

  6. centos6.8下安装部署LNMP(备注:nginx1.8.0+php5.6.10+mysql5.6.12)

    在平时运维工作中,经常需要用到LNMP应用框架. 以下对LNMP环境部署记录下: 1)前期准备:为了安装顺利,建议先使用yum安装依赖库 [root@opd ~]#yum install -y mak ...

  7. windows 10 上office2016 word崩溃的解决方案

    windows 10 上office2016 word崩溃的解决方案 参考文章: (1)windows 10 上office2016 word崩溃的解决方案 (2)https://www.cnblog ...

  8. cxf springmvc_拥抱模块化Java平台:Java 10上的Apache CXF

    cxf springmvc 自Java 9发布最终将Project Jigsaw交付给大众以来,已经过去了整整一年的时间. 这是一段漫长的旅程,但是在那里,所以发生了什么变化? 这是一个很好的问题,答 ...

  9. 微软程序在Android上跑,想在Win 10上运行Android应用?这类手机用户已经可以尝鲜...

    在Win 10上运行Android应用?这听起来有些异想天开,可实实在在的需求却在这里,毕竟微软Windows体系内的无缝切换,离开了手机平台始终有些怪怪的,自然,微软也不会甘心放弃,最好的办法,莫过 ...

最新文章

  1. 2.monotouch 控件的使用
  2. shell中read用法
  3. Pytorch+LSTM+AI自动写诗实战
  4. python苹果手机的api_Python中的api,API
  5. 负载策略_面试官:讲一下什么是负载均衡,什么是轮询策略随机策略哈希策略
  6. Mvc 学习笔记(一)
  7. 思科网络模拟器Packet Tracer教程
  8. 163等各种邮箱端口号设置
  9. Ubuntu内网穿透
  10. Excel 数组公式的简单使用
  11. 程序员的工资有多高?
  12. MODIS与Landsat获取LST数据
  13. 平板酷派Ultranote X15概述
  14. 360WIFI登陆页面地址
  15. 三表左连接sql语句例子
  16. JuiceFS分布式文件系统源码分析(Java层)
  17. 智能优化与机器学习结合算法实现数据分类matlab代码清单
  18. 【C#】VS编写简单的网游客户端
  19. 阿里巴巴的“旺信”上线
  20. 阿德莱德大学计算机考研专业,阿德莱德大学研究生学制是几年?

热门文章

  1. 字体在ppt中可以整体替换吗_如何给ppt整体改字体_教你给ppt整体改字体的方法-系统城...
  2. tableau如何按条件累加_Pointer分享:Tableau学习—8种图表介绍
  3. bzoj1568 [JSOI2008]Blue Mary开公司 标记永久化线段树
  4. 【Level 08】U07 Mixed Feelings L2 Let's go shopping
  5. 【英语学习】【WOTD】stratagem 释义/词源/示例
  6. IO复用\阻塞IO\非阻塞IO\同步IO\异步IO
  7. 广西全国计算机二级考试内容,全国高校计算机等级考试(广西考区)二级考试大纲.doc...
  8. GMAT英语语法:量词及一些单复数问题详解。附相关错句改正
  9. pcp pmda mysql_linux下的mysql的安装
  10. 全局光照技术解析Global Illumination Explained