天生我才必有用

使用PHP读取Excel文件

Posted in PHP    作者:Ray    2009年十一月20日

可能这应该算得上一个很古老的问题,解决的也有多种多样,不过Internet上比较多的是Excel的保存的范例,所以写一篇如何读取Excel,可能对大家有所帮助。

  1. 使用COM接口调用,把Excel应用程序作为一个Server,PHP间接使用Excel来读取文件。
  2. 使用PHPExcel的程序包。它的优点不单单读取资料而且可以保存资料为Excel文件,同时还支持Excel 2007的格式。方法就是把Excel看作一个普通的Excel文件读取。
  3. 还有一种是PHP Excel Reader,它把Excel文件看作一个二进制文件读取,不过不支持新版本Excel文件。

方法2可能看起来不错,不过当你在读取资料大比较大的文件时,会有一个致命的缺点:内存溢出。因为它必须把整个Excel读入内存。有点像XML的DOM接口,不清楚是否有类型XML的SAX的方法。

方法3有类似方法2内存溢出的问题,同时对新版的支持较差。

方法1应该是属于非常传统的方式,只有支持COM程序接口就可。同时只有你能用当前安装的Excel打开此文件,你就可以通过COM接口读取文件。缺点就是你必须在你的电脑上安装Excel。不过对于大文件现在只能使用这个方法。

$doc = "test.xls" ;
$excel_app = new COM("Excel.Application", NULL, CP_UTF8) or die ("Please install the Excel. \n");

#$excel_app->Visible = 1;

$workbook = $excel_app->Workbooks->Open($doc) or die("Can't open ".$doc);
$worksheet = $workbook->WorkSheets(1);
$worksheet->activate;

$min_row    = $worksheet->UsedRange->Row;
$min_col    = $worksheet->UsedRange->Column;
$max_row    = $worksheet->UsedRange->Rows->Count;
$max_col    = $worksheet->UsedRange->Columns->Count;

for ($row = $min_row ; $row < $max_row; $row ++){
    for ($column = $min_col ; $column <= $max_col; $column ++){
       $value = $worksheet->Cells($row, $column)->value;
       echo $value."\n";
    }
}
$excel_app->Workbooks->Close();
$excel_app->Quit();
标签: , , ,

Zend Framework 1.9发布

Posted in PHP, 技术    作者:Ray    2009年八月10日

感觉现在Zend Framework 更新了很快,可能和日益受到关注有关。不知不觉中已经发布到了1.9版本。

更新的内容可以查看:http://devzone.zend.com/article/4906-Zend-Framework-1.9.0-Released

我对Zend_Test_PHPUnit_Db和Zend_Queue比较感兴趣,特别是Zend_Queue的支持,特别是加入了对MemcacheQ的原生支持。

有空学习一下这些新内容,感觉Zend Framework在逐渐缩短和RoR之间的差距。在新版本发布之际,更新一下Zend Framework的帮助chm.

标签: ,

Zend Framework command line console tools

Posted in PHP    作者:Ray    2009年七月21日

Zend Framework Command Line Console Tool v1.8.4

Usage:

zf [--global-opts] action-name [--action-opts] provider-name [--provider-opts] [provider parameters ...]

Providers and their actions:

  • Version

zf show version mode[=mini] name-included[=1]
查看当前Zend Framework的版本信息。你可以使用zf show version ? 获得更多的帮助信息。

  • Phpinfo

zf show phpinfo
查看PHP配置信息。

  • Manifest

zf show manifest
查看项目的Manifest

  • Profile

zf show profile
查看项目的Profile

  • Project

zf create project path
创建新的项目

  • View

zf create view controller-name action-name-or-simple-name
创建View

  • Controller

zf create controller name index-action-included[=1] module
创建Controller

  • Action

zf create action name controller-name[=index] view-included[=1] module

  • Module

zf create module name

  • ProjectProvider

zf create project-provider name actions

解决MySQL server has gone away的问题

Posted in 数据库    作者:Ray    2009年六月8日

今天再汇入一个1GB的 Mysql文件时,突然出现”MySQL server has gone away”的问题,通过google查了一下。原来是MySQL的设置有问题。因为数据库表中有个栏位使用了Longtext(其实使用MediumText也会发生这个错),而MySQL的my.cnf中的max_allowed_packet默认设定值为1M,此时栏位的内容超过了1M的设定值。所以针对这样的错误其实只要修改一下此max_allowed_packet设定值即可。

当修改此设定值为16M时,此错误就不再发生了,可能不需要16M这么大,具体看数据的事件大小即可。

标签:

Drupal 常用模块

Posted in PHP, 网站设计    作者:Ray    2009年五月17日

1. 内容编辑

1.1 BUEditor (http://drupal.org/project/bueditor

bueditor1

1.2 Textile (http://drupal.org/project/textile)

使用自定义的标签来转换成Html文本

1.3 Wysiwyg API (http://drupal.org/project/wysiwyg)

一款所见即所得(WYSIWYG)编辑器。

1.4 FCKeditor (http://drupal.org/project/fckeditor)

另一款所见即所得的编辑器,同时也是较早被Drupal支持,所以维护和支持都不错。

标签:

使用jQuery创建Tooltips

Posted in Javascript, 网站设计    作者:Ray    2009年四月2日

NetTuts最新教材:

Build a Better Tooltip with jQuery Awesomeness

效果如下:

initial-design

25个下拉菜单导航脚本

Posted in Javascript, 网站设计    作者:Ray    2009年四月1日

这篇博客介绍了25个关于下拉菜单的脚本,有空学习研究一下:

http://vandelaydesign.com/blog/tools/dropdown-navigation-menus/

标签:

Flash & Facebook

Posted in Flex, Flash & AS    作者:Ray    2009年三月31日

随着Facebook的越来越流行,Adobe也不甘寂寞,何Facebook玩起了同盟,让Actionscript支持Facebook的开发API。可访问此网址获得更多相关信息。国外的很多网站都在使用都在使用Facebook Connect来实现自己网站和Facebook的之间的无缝连接。

不过感觉最困扰中国用户的还是两个问题:

  1. 过多的简化的山寨版的Facebook,很多根本不具有开发很多根本不具有开发API
  2. Facebook的网速真的不敢恭维,感觉在这方面Google比它强多了,看来要解决这个问题只能等facebook中国分公司的成立了。速度慢必然造成很多Javascript程序的加载失败,有时就不知道是自己程序错误还是网速的问题,同时调试简直就是一场噩梦。

Custom Form

Posted in Javascript    作者:Ray    2009年三月9日

是不是觉得标准的HTML的Form看上去不是很舒服,今天看到一个Mootools做的Custom Form 非常的不错。http://customformelements.net/demopage.php。当然也去尝试找找是否有jQuery的类似控件,只找到了jNice Form (http://plugins.jquery.com/project/jNice),不过和Mootools那套CSS的设计比起来可能还是差了一点。

挺迷惑的一点就是为何有这么多的Js的Framework,何时才能只需要选择一种就可以有所以的解决方案。

jQuery Tag Suggestion

Posted in Javascript    作者:Ray    2009年三月7日

这个jQuery的插件不错,主要实现的类似Delicious的标签推荐的功能,个人觉得这样的功能定义比原来这个jTagging使用起来更方便。

有兴趣可访问以下地址:http://remysharp.com/2007/12/28/jquery-tag-suggestion/

同时在此人博客中还找到了一个Text Box Hint的jQuery插件。其实前几天一直在找这个功能的插件,一直没找到。看来搜索的关键字也是一门学问啊。

标签: , ,