Loading...

php语言解决一些变态的需求

2007-09-22 21:50:57 发表于PHP, 网站技术 本文链接: php语言解决一些变态的需求

业余接触php已经有6年多了,中间也遇到过很客户的BT需求,配合刚才发布的文章,所以特此介绍一下我想出来的变态解决方案,说不定你哪天也会用得上呢,用不上就当做看看玩吧。

用php生成word文档。

说到word,可能熟悉asp或者vb的朋友马上就要跳出来了,不就是VBA的问题么?可是别忘了php是在*nix机器下运行,没有可爱的VBA呀,所以这里就得采用变态的方法来解决这个问题了。

  1. 方法 1,用php输出html格式,因为office98以上的版本都支持html格式的word文档,这也是最简单的方式,网上也有n多人这样用。代码如下header("Content-type:application/vnd.ms-word");
    header("Content-Disposition:filename=ms.doc");
    //这里用echo或者include其他html输出你的html
    这种方式的缺点在于输出的word文件显示不是很好看,特别是表格的边框,都是比较怪怪的,而且也不支持css,不能作出比较好看的表格。
  2. 方法2,用word另存为html的方式。这样的优点就是生成的word文件看起来似乎比较专业。代码和前面一样,只是后面的输出html的时候需要做点手脚。先在word中编辑需要生成文档的模板,编辑完毕之后用word自身的功能另存为html文件,然后在php中就按照这个html文件输出,将输出的结果保存在doc格式即可。由于这个html就是由word转化而来,所以如此转化回去之后的失真是很小的。这样的缺点在于工作量比较大,很麻烦。

用php生成Excel文档。

  1. 方法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. 方法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了

标签:
发表于 2007-09-22 21:50:57 目录:PHP, 网站技术 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    feed url
    上一篇: « 换个思维解决问题
    下一篇: 周末的那些事 »
    已经有5位大师动手指导 拒绝低俗
    • 1楼 Taoii 在2007.09.24 20:35发表评论如下: 回复

      很想问一下子你到底是干什么的?[r]一个打杂的,呵呵http://www.storyday.com/aboutus[/r]

      • 1楼附属品 epile 在2009.01.14 12:07发表评论如下: 回复

        旧版的回复错误了~

        • 1楼附属品 江东 在2009.01.14 12:17发表评论如下: 回复

          没有明白什么意思哈!

          • 1楼附属品 epile 在2009.01.14 12:19发表评论如下: 回复

            后面这段应该是你的回复吧~[r]一个打杂的,呵呵http://www.storyday.com/aboutus[/r]

            • 1楼附属品 江东 在2009.01.14 12:24发表评论如下: 回复

              哦,这个意思哦,哈哈,没有办法,历史遗留的问题

      评论分页: 1
      (Required)
      (Required, not published)
      如果留言未显示无需重复留言,我将为你恢复!