浏览模式: 标准 | 列表2008年09月16日的文章
Submitted by gouki on 2008, September 16, 10:42 PM
不好意思,该操作只能在windows服务器上才能执行,是因为,只有windows服务器才支持COM功能,而且,必须安装wps(这点应该不难,因为WPS是免费软件)
免费软件这点太重要了,如果你要生成WORD,你不可能安装一个OFFICE吧,office太贵了。
PHP代码
- <?php
- $wps = new COM("WPS.Application");
- $wps->Visible = false;
- $doc = $wps->Documents->Add();
- $doc->Range->Text = 'WPS FOR PHP test';
- $doc->Paragraphs[1]->Alignment = 1;
- $doc->Shapes->AddPicture("http://img.kingsoft.com/publish/kingsoft/images/gb/sy/logo.gif", 100, 50, 148, 60);
- $doc->SaveAs('c:\\temp\\test1.wps');
- $doc->Close();
- $wps->Quit();
- unset( $doc , $wps );
- ?>
代码很简单,只是添加了一个文字和一个图片而己。但是,证明了是可以使用这个功能。
大家别忘了,WPS的附加功能可是很多的,比如把文件转为PDF等格式。也就是说, 如果是在windows服务器上,我们要生成PDF,可以不使用那些什么fpdf类库,而是使用WPS先生成一个WORD格式的文档,然后直接exportPdf就可以了。要知道OFFICE默认并不支持这种功能。黑黑
这也是一种思路嘛,思路决定出路,转换一种思路,可能就是海阔天空。
这里是WPS的开发者网站:http://wps.kingsoft.com/apply/engineer.shtml,从这里可以下载API:http://wps.kingsoft.com/download/WPSAPI.zip
Tags: php, wps, com, wps application
PHP | 评论:1
| 阅读:29963
Submitted by gouki on 2008, September 16, 10:13 PM
在windows服务器里面,如果我们要用FTP函数,速度应该是很慢的,而且效率不高,如果有大量文件需要上传,用自带的FTP函数,恐怕是要死人的吧。
windows服务器,windows哦,可以装N多软件的windows哦。虽然不建议在服务器上装上很多软件,但是也可以装一些FTP软件的嘛。这里以cuteftp举例。
cuteftp安装完毕后,会在软件目录里有一个Scripts目录,现在的版本不象很久以前的了,如今的版里只有一个Sample.vbs,记得几年前的cuteftp里面会有各种各样的vbs文件的。
闲话不多说,打开vbs文件,内容为:
ASP/Visual Basic代码
-
-
-
-
-
-
-
- Dim MySite
-
- Set MySite = CreateObject("CuteFTPPro.TEConnection")
-
-
-
- MySite.Protocol = "FTP"
- MySite.Host = "ftp.globalscape.com"
-
- MySite.Login = "anonymous"
- MySite.Password = "user@user.com"
-
- MySite.UseProxy = "BOTH"
-
- MySite.Connect
-
- If (Not Cbool(MySite.IsConnected)) Then
- MsgBox "Could not connect to: " & MySite.Host & "!"
- Quit(1)
- End If
-
- If (Not (MySite.LocalExists("c:\temp"))) Then
- MySite.CreateLocalFolder "c:\temp"
- End If
-
- MySite.LocalFolder = "c:\temp"
-
- b = MySite.RemoteExists("/pub/cuteftp/")
- If (Not CBool(b)) Then
-
- MsgBox "Remote folder not found!. Please make sure that the Pub folder exists on the remote site"
- Quit(1)
- End If
-
- MySite.Download "/pub/cuteftp/index.txt"
-
- MsgBox "Task done, final status is '" + MySite.Status + "'"
- MySite.Disconnect
- MySite.Close
-
看到这样的文件,你应该知道如何调用一些FTP软件自带的方法了吧?现在,我们用PHP模拟一遍。。。。。
请看详细内容
» 阅读全文
Tags: ftp, com, windows, cuteftp, vbs
PHP | 评论:0
| 阅读:21618
Submitted by gouki on 2008, September 16, 9:10 AM
今天我们继续学习一下MYSQL的数据类型
浮点型
从MYSQL3.23开始,FLOAT和DOUBLE类型就一直分别对应着IEEE标准所定义的单精度浮点数和双精度浮点数,绝大多数编程语言也都支持这两种数据类型。
当某个字段设置成这两种类型时,会要求按(m,d)这样的格式输入参数,其中m和上文介绍INT时所讲的m效果一样,仅仅在显示/打印结果时有一定的排版作用,而对数据的精确度没有影响。可是d这个参数就不一样了,d代表了小数点后面的数字个数,而且会按照d的大小来进行四舍五入,例如:1234.5678如果存储到FLOAT(8,3)这样的字段里,实际存放的是1234.568,最后一位会四舍五入。
存储FLOAT和DOUBLE时,如果超出了这两种类型的范围,将会被替换成该类型的最大可取值(一般由当前操作系统决定,我不知道MYSQL是怎么样。),可以使用SHOW WARNING来查看警告内容。
MYSQL对浮点数有一定的要求,即一定要符合通用计数法,小数点一定是“.”,而不能是“,”(因为有部分欧洲国家使用逗号作为小数点,我也是第一次听说,黑黑),MYSQL永远会以这种写法向客户返回查询结果,只有在非常大或非常小的数值,会采用科学计数法表示,如1.234E+017。如果想让浮点数表现形式变成其他样式,有两种方式:一是利用SQL查询中的FORMAT函数,二是用客户端程序中的FORMAT函数,例如php中就可以使用sprintf或者number_format等来改变显示效果
类型 |
含义 |
FLOAT(m,d) |
单精度浮点数,8位精度,占4字节 |
DOUBLE(m,d) |
双精度浮点数,16位精度,占8字节 |
REAL(m,d) |
DOUBLE的同义词 |
说到浮点数,当然要提定点数了
正因为MYSQL在处理浮点数时,最后一位会被自动的四舍五入,而我们实际上并不需要这一位被四舍五入(比如在处理财务数据时),怎么办呢?定点数可以解决这个问题。
定点数(DECIMAL)数字是以字符串的形式来进行存储的,并且不被允许存储指数形式,每位数字占用一个字节,外加两个字节的开销,所以,占用了更多的空间,但可表示的数值范围却比较小。
在进行存储的时候,也有两个参数DECIMAL(p,s)这回,这两个参数都有作用了。p代表了数据的总位数(不含小数点),最大65,s代表了小数点后的数字位数,最大为30。比方说:DECIMAL(6,3)取值范围为-999.999~999.999,这是新的版本的表示方法。不知道我有没有记错,我记得在以前的版本里,DECIMAL(6,3),这个6并不是代表了总位数,而是小数点前的位数(可能是在4.0吧)。
在MYSQL内部,定点数是被保存为二进制格式的,把定点数从小数点开始分割,并为它们各自分配所占用的字节数(最初是以每4个字节进行划分,虽然每个字节可以容纳2位数字,但4个字节却可以容纳9位数字,超过4个字节后,如果有多出的数字就划分一个字节来进行存储,同样如果是9位数字,还是只占4个字节)。根据这个规定,我们可以认为DECIMAL(6,3)其实是和DECIMAL(18,9)占用了同样多的字节数(8个字节)。如此说来DECIMAL(19,9)实际就占用了9个字节。
类型 |
含义 |
DECIMAL(p,s) |
定点数,以字符串形式保存,最长为65 |
NUMERIC,DEC |
同上(应该没有记错吧) |
参考:http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html
Tags: database, mysql, 连载
DataBase | 评论:0
| 阅读:23471