业余接触php已经有6年多了,中间也遇到过很客户的BT需求,配合刚才发布的文章,所以特此介绍一下我想出来的变态解决方案,说不定你哪天也会用得上呢,用不上就当做看看玩吧。
用php生成word文档。
说到word,可能熟悉asp或者vb的朋友马上就要跳出来了,不就是VBA的问题么?可是别忘了php是在*nix机器下运行,没有可爱的VBA呀,所以这里就得采用变态的方法来解决这个问题了。
- 方法 1,用php输出html格式,因为office98以上的版本都支持html格式的word文档,这也是最简单的方式,网上也有n多人这样用。代码如下
header("Content-type:application/vnd.ms-word");这种方式的缺点在于输出的word文件显示不是很好看,特别是表格的边框,都是比较怪怪的,而且也不支持css,不能作出比较好看的表格。
header("Content-Disposition:filename=ms.doc");
//这里用echo或者include其他html输出你的html
- 方法2,用word另存为html的方式。这样的优点就是生成的word文件看起来似乎比较专业。代码和前面一样,只是后面的输出html的时候需要做点手脚。先在word中编辑需要生成文档的模板,编辑完毕之后用word自身的功能另存为html文件,然后在php中就按照这个html文件输出,将输出的结果保存在doc格式即可。由于这个html就是由word转化而来,所以如此转化回去之后的失真是很小的。这样的缺点在于工作量比较大,很麻烦。
用php生成Excel文档。
- 方法1.由于Excel也支持逗号和tab分割号的模式,所以简单的excel文件,只需要用逗号将需要的数据输出,然后给客户端header的时候发送为excel格式,代码如下
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=ms.excel");
echo "row1,row1,row1\n row2,row2,row2";
//这里用echo或者include其他html输出你的html - 方法2.用pear的speadsheet类生成excel文件,其实这个方法是比较中规中矩的方法,不算BT的方法,这样的方式可以控制excel的格式,包括字体大小,字体颜色等等。具体方法可以参考Pear SpreadSheet 真是个好东西
用php生成图片文档。
这里介绍的纯属BT的方法,因为我介绍的将不是你想的GD库,为什么这么BT而不用GD库呢,主要是国内的好多虚拟主机居然都不支持GD库,而有的时候我们又很需要用图片来做验证码,验证码也不能在js中直接调用图片,因为这利用样程序按照你js中的内容很容易就破解了,验证码也就没有用了。所以看看下面bt的方法吧:
首先放几张图片,分别名为1.jpg 2.jpg 3.jpg …,然后image.php的代码如下:
header('Content-Type: image/jpeg');
$m = rand(0, n).".jpg";
readfile($m);
然后调用<img src=”image.php” />,先是的就是随机图片了,再配合session就可以进行验证码了。
还有很多关于php的BT的用法 ,一时想不全了,我个人认为,做程序不需要中规中矩,只要能解决问题满足需求便是最好的方法。
题外话:看看这篇文章的slug,google的翻译真是越来越NB了
标签:PHP
很想问一下子你到底是干什么的?[r]一个打杂的,呵呵http://www.storyday.com/aboutus[/r]
旧版的回复错误了~
没有明白什么意思哈!
后面这段应该是你的回复吧~[r]一个打杂的,呵呵http://www.storyday.com/aboutus[/r]
哦,这个意思哦,哈哈,没有办法,历史遗留的问题