我的Firefox配置设置 [软件应用]

post by 朦朧中的罪惡 / 2009-8-3 19:06 Monday

about:config

设定鼠标一次滚6行

mousewheel.withnokey.numlines 6

设定不继承系统设置的一次滚行数

mousewheel.withnokey.sysnumlines false

设定在关闭最后一个标签页时不关闭整个firefox 窗口

browser.tabs.closeWindowWithLastTab false

在后台加载书签

browser.tabs.loadBookmarksInBackground true

在后台加载新链接

browser.tabs.loadDivertedInBackground true

标签: 原创 FireFox

PHP浮点数比较不准的解决方法 [PHP]

post by 朦朧中的罪惡 / 2009-7-28 17:30 Tuesday

首先看一段代码:

<?php
$a = 0.1;
$b = 0.7;
var_dump(($a + $b) == 0.8);

打印出来的值居然为 boolean false

这是为啥?PHP手册对于浮点数有以下警告信息:

Warning
浮点数精度
显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。

这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333. . .。

所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数

那么上面的算式我们应该改写为

<?php
$a = 0.1;
$b = 0.7;
var_dump(bcadd($a,$b,2) == 0.8);

这样就能解决浮点数的计算问题了
 


 

标签: php

PHP函数ereg与preg的区别 [PHP]

post by 朦朧中的罪惡 / 2009-7-28 17:27 Tuesday

1.ereg里面是不需要也不能使用分隔符和修饰符的.

2.'.'在正则里面一般是除了换行符以外的全部字符,但是在ereg里面的'.'是任意字符,即包括换行符!如果在preg里面希望'.'能够包括换行符,可以在修饰符中加上's'。

3.ereg默认使用贪婪模式,并且不能修改.

4.preg的速度要远远比ereg快.

标签: php

FireFox和IE下使用ajax的一些小问题总结 [Web前端]

post by 朦朧中的罪惡 / 2009-6-17 20:07 Wednesday

1、FireFox下使用xmlHttpRequest的send方法是必须指定参数。即.send();是无效的,如果没有参数要使用.send(null);.
2、FireFox下处理DOM时把空白也当作是一个节点。因此为了避免出现一些意想不到的问题,要尽量不要使用空白(包括换行、空格等等)。
3、使用createElement创建节点时,IE下可以用document.createElement(”<tr>”);但是FireFox下只能用document.createElement(”tr”);
4、添加子节点,IE可以用add,但是FireFox下不可以。FireFox下只能用appendChild.
5、如果IE下往table节点里添加tr达不到预期效果,常常是因为没有添加tbody节点。
6、IE下使用javascript设定td的colspan无效是因为大小写的问题,必须使用colSpan。
7、FireFox下输出从服务器端返回XML时注意开头不能有空白(包括换行、空格等),否则会有解析错误。
8、使用xmlHTTPRequest实现分页效果时,每次处理完一次请求要把xmlHTTPRequest对象消掉,下次使用时再重新构建。

标签: JavaScript FireFox

PHP多版本共存解决方案 [服务器配置]

post by 朦朧中的罪惡 / 2009-4-29 12:42 Wednesday

我这里说的php多版本共存不仅仅是php4、php5两个大版本号程序的共存,而是php的很多小版本号程序的共存,例如php4.3.1、php4.4.5、php5.2.0、php5.2.9等等,不仅如此,由于测试的需求,我还需要做到php的版本可以随时灵活切换。

目前网上很多的解决方案是在本机安装IIS和Apache或安装多个apache服务,每个服务器安装一个版本的php来达到版本共存的要求,但是要按照 我的要求,这么做既麻烦也达不到我的要求。那么有没有别的方法呢,网上没有就只好自己来研究了,下面就是我摸索出的完美解决方案:

实现思路:Apache  + .htaccess + PHP CGI

阅读全文>>

标签: apache php 原创 享受编程

phpCodeBeautifier批量php程序代码美化工具 [PHP]

post by 朦朧中的罪惡 / 2009-4-24 12:35 Friday

phpCodeBeautifier是一个非常不错的php代码美化工具,但是美中不足的是要使用它必须在命令行下使用非常长的命令参数来美化程序,更有一点不能忍受的是它一次只能美化一个程序文件的代码。

针对这些问题,我写了一个php的shell 脚本来解决这些问题。

主要功能:

使用phpCodeBeautifier批量美化php代码,一个命令就能自动把文件夹下所有的php文件(包括子文件夹)的代码美化完毕。

点击查看原图

程序代码批量美化步骤

请注意在美化操作前请务必备份自己原程序....

1.将phpCB.exe和phpcb.php拷贝到你要美化的php程序的文件夹里
例如 d:\emlog
2.然后 开始 - 运行 输入 cmd
3.在命令行窗口输入 d:\php\php.exe d:\emlog\phpcb.php 后回车
注意 d:\php\php.exe 是本机php.exe的安装路径,请根据自己机器的PHP安装路径修改...
4.耐心等到输出 job done!提示后,代码就美化完成了。

5月4日 update  修复路径递归bug

2010年 1月15日更新,修复文件路径失效

程序下载地址在这里

标签: php 原创 享受编程

霏凡软件站搜索XSS漏洞 [杂七杂八]

post by 朦朧中的罪惡 / 2009-4-23 20:02 Thursday

无意中试了下,居然可以,霏凡程序员也太大意了吧....

点击查看原图

然后顺便试了一下霏凡的兄弟站绿色下载,一样的结果...

点击查看原图

标签: XSS

QQ2009登陆后崩溃的解决办法 [疑难杂症]

post by 朦朧中的罪惡 / 2009-4-23 12:16 Thursday

今日同事遇到一件怪事,只要登陆QQ2009正式版本,登陆成功后几秒钟QQ就会莫名其妙的崩溃掉。

我采取了卸载重装,清除所有QQ生成的文件,关闭杀毒软件等等等方法后QQ依然是登陆后继续崩溃。

此时开始怀疑是否是系统中某些QQ需要的程序出现故障,询问同事在出现该症状前有什么软件变动操作,同事说将机器上的Flash给卸载了。晕,估计是flash控件没了导致QQ崩溃。

解决方案

1.下载最新的flash播放控件并安装 这里下载

2.进入 c:\windows\system32 搜索 flash.ocx

点击查看原图

3.得到flash.ocx 文件路径之后,在开始 - 运行中输入 regsvr32 C:\WINDOWS\system32\Macromed\Flash\flash.ocx

提示注册成功后问题即解决

注意,不同版本的flash控件文件名称可能会有出入

标签: 软件应用

[转]在VirtualBox里复制VDI文件 [软件应用]

post by 朦朧中的罪惡 / 2009-4-22 15:30 Wednesday

在VirtualBox的快速修复界面里,可以随时生成当前状态的备份。当生成了备份之后,会在Snapshots目录下创建一个新的VDI文件,之后对当前状态所做的一切操作都将针对最新的VDI文件,而VDI目录下的初始VDI文件就不会再改变了。

 

我一般在装好Guest OS并做完打补丁、安装常用软件等操作后就创建一个备份,如果Guest OS发生了问题可以随时恢复到干净的系统。但是有时需要在不同的软件环境下做不同的事情,开始时我希望能用一个VDI文件生成两个不同的备份并分别配置成不同的环境,但是发现VirtualBox的备份是线性的,也就是说只能针对当前状态做一个备份,而恢复备份时也只能恢复到上一个备份的状态,不能同时存在两个不同的当前状态。

 

没有办法,只能把初始的VDI文件复制出来一份用于另外的环境。但是很快发现,复制出来的VDI文件无法在虚拟介质管理器中注册,因为每个VDI文件都有一个唯一的uuid,而VirtualBox不允许注册重复的uuid。

 

看了帮助文件后,发现VBoxManage有一个clonevdi方法可以克隆VDI文件,并赋予它一个新的uuid。具体用法是在命令行里执行:

VBoxManage clonevdi 原始VDI文件名 新的VDI文件名

直接写VDI文件名即可,不用指明VDI文件所在路径,新的文件会在全局设定中指定的VDI目录下创建。如果VDI文件名里带有空格,应该在两端加上双引号。VBoxManage命令位于VirtualBox安装目录下,缺省路径是C:\Program Files\Sun\xVM VirtualBox。

 

用这个方法创建了新的VDI文件后,就可以正常注册并在另一个虚拟机中使用了。

 


2008-12-25更新:

 

本月17日VirtualBox发布了2.10版,在这个版本里,VBoxManage clonevdi命令改为了VBoxManage clonehd,它的用法如下:

VBoxManage clonehd          <uuid>|<filename> <outputfile>
                            [-format VDI|VMDK|VHD|RAW|<other>]
                            [-remember]

可以看到,使用-format参数,除了VDI格式的虚拟磁盘文件以外,它还支持VMDK(VMWare)、VHD(Virtual PC)等格式。为了向下兼容,它仍然支持使用VBoxManage clonevdi命令来复制VDI格式的文件

本文转自:http://blog.sina.com.cn/s/blog_591a2c940100aree.html

标签: 软件应用

php连接SQL Server2000/2005的问题总结 [疑难杂症]

post by 朦朧中的罪惡 / 2009-3-10 8:56 Tuesday

如果在Windows下使用php链接SQL Server,按照正确的常规配置会出现以下问题

PHP去除了php.ini中;extension=php_mssql.dll前面的注释后Apache仍然无法加载php_mssql.dll。

在PHP中使用mssql_connect()函数时报以下错误

Call to undefined function mssql_connect()

错误日志中记录的内容为PHP Startup: Unable to load dynamic library 'D:\\WebService\\php-5.2.8-Win32\\ext\\php_mssql.dll'

网上查找资料后发现出现这个问题其实是少了一个NTwdblib.dll,而这个动态连接库文件是是SQL SERVER客户端连接库,如果本机安装有SQL Server2000/2005的客户端就不会出现这个问题。找到一个NTwdblib.dll文件后放置到System32文件夹中即可解决这个问题。

附件下载:
NTWDBLIB.zip 116.88KB

标签: php

«... 8 9 10 11 12 13 14 15 16 17 18 ... »