php 2010excel,PHPExcel在php5.2.10上的bug
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相关推荐
- win7+php5.3.10下安装memcache (转)
因为升级到了5.3.10,所以之前的dll不能使用了,弄了好久,终于还是在老外的博客上找到了解决方法: (环境是win7+php5.3.10+win32) 1.解压附件memcached到某个目录,本 ...
- 如何在Ubuntu 14.10 上安装WordPress?
如果你想快捷.简单.免费的创建个人网站的话,WordPress 是你最佳的选择. WordPress 是一种使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架 ...
- 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 ...
- 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 ...
- 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 ...
- centos6.8下安装部署LNMP(备注:nginx1.8.0+php5.6.10+mysql5.6.12)
在平时运维工作中,经常需要用到LNMP应用框架. 以下对LNMP环境部署记录下: 1)前期准备:为了安装顺利,建议先使用yum安装依赖库 [root@opd ~]#yum install -y mak ...
- windows 10 上office2016 word崩溃的解决方案
windows 10 上office2016 word崩溃的解决方案 参考文章: (1)windows 10 上office2016 word崩溃的解决方案 (2)https://www.cnblog ...
- cxf springmvc_拥抱模块化Java平台:Java 10上的Apache CXF
cxf springmvc 自Java 9发布最终将Project Jigsaw交付给大众以来,已经过去了整整一年的时间. 这是一段漫长的旅程,但是在那里,所以发生了什么变化? 这是一个很好的问题,答 ...
- 微软程序在Android上跑,想在Win 10上运行Android应用?这类手机用户已经可以尝鲜...
在Win 10上运行Android应用?这听起来有些异想天开,可实实在在的需求却在这里,毕竟微软Windows体系内的无缝切换,离开了手机平台始终有些怪怪的,自然,微软也不会甘心放弃,最好的办法,莫过 ...
最新文章
- 2.monotouch 控件的使用
- shell中read用法
- Pytorch+LSTM+AI自动写诗实战
- python苹果手机的api_Python中的api,API
- 负载策略_面试官:讲一下什么是负载均衡,什么是轮询策略随机策略哈希策略
- Mvc 学习笔记(一)
- 思科网络模拟器Packet Tracer教程
- 163等各种邮箱端口号设置
- Ubuntu内网穿透
- Excel 数组公式的简单使用
- 程序员的工资有多高?
- MODIS与Landsat获取LST数据
- 平板酷派Ultranote X15概述
- 360WIFI登陆页面地址
- 三表左连接sql语句例子
- JuiceFS分布式文件系统源码分析(Java层)
- 智能优化与机器学习结合算法实现数据分类matlab代码清单
- 【C#】VS编写简单的网游客户端
- 阿里巴巴的“旺信”上线
- 阿德莱德大学计算机考研专业,阿德莱德大学研究生学制是几年?
热门文章
- 字体在ppt中可以整体替换吗_如何给ppt整体改字体_教你给ppt整体改字体的方法-系统城...
- tableau如何按条件累加_Pointer分享:Tableau学习—8种图表介绍
- bzoj1568 [JSOI2008]Blue Mary开公司 标记永久化线段树
- 【Level 08】U07 Mixed Feelings L2 Let's go shopping
- 【英语学习】【WOTD】stratagem 释义/词源/示例
- IO复用\阻塞IO\非阻塞IO\同步IO\异步IO
- 广西全国计算机二级考试内容,全国高校计算机等级考试(广西考区)二级考试大纲.doc...
- GMAT英语语法:量词及一些单复数问题详解。附相关错句改正
- pcp pmda mysql_linux下的mysql的安装
- 全局光照技术解析Global Illumination Explained