不同语言的URLEncode
[ 2006/09/01 12:44 | by ipaddr ]
不同语言的URLEncode
1.javascript
encodeURIComponent 方法
将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。
encodeURIComponent(encodedURIString)
必选的 encodedURIString 参数代表一个已编码的 URI 组件。
说明
encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初
始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如
/folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务
器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。
2.PHP
urlencode()
urldecode()
3.ASP
Server.UrlEncode>>>>>>>>>>>>>>>>>>>>>>>>>
1.javascript
encodeURIComponent 方法
将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。
encodeURIComponent(encodedURIString)
必选的 encodedURIString 参数代表一个已编码的 URI 组件。
说明
encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初
始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如
/folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务
器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。
2.PHP
urlencode()
urldecode()
3.ASP
Server.UrlEncode>>>>>>>>>>>>>>>>>>>>>>>>>
bash中的比较
BASH中字符串和数字的比较各不相同,详见下表:
对应的操作 整数操作 字符串操作
相同 -eq =
不同 -ne !=
大于 -gt >
小于 -lt <
大于或等于 -ge
小于或等于 -le
为空 -z
不为空 -n
判断字符串是否为空时,使用-z或-n,如下用法:
#!/bin/bash
IPADDR=""
if [ -n "$IPADDR" ] #注意,一定要加上双引号
then
echo "Fail"
fi
>>>>>>>>>>>>>>>>>>>>>
BASH中字符串和数字的比较各不相同,详见下表:
对应的操作 整数操作 字符串操作
相同 -eq =
不同 -ne !=
大于 -gt >
小于 -lt <
大于或等于 -ge
小于或等于 -le
为空 -z
不为空 -n
判断字符串是否为空时,使用-z或-n,如下用法:
#!/bin/bash
IPADDR=""
if [ -n "$IPADDR" ] #注意,一定要加上双引号
then
echo "Fail"
fi
>>>>>>>>>>>>>>>>>>>>>
XP下IIS出现MSXML3.DLL拒绝访问错误的解决办法
[ 2006/08/14 23:11 | by ipaddr ]
IIS报错:
msxml3.dll (0x80070005)
拒绝访问
解决办法:
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
改为
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
或
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.4.0") >>>>>>>>>>>>
网页中关闭IE的图像工具栏和XP主题
[ 2006/08/08 22:09 | by ipaddr ]
关闭XP系统主题在IE中的显示
如果开发环境是XP系统,IE中的input标签会和XP系统主题相符合,影响了外观的统一,采用下列方法可以关闭.
添加下列 META 标记,可以选择使得您的 HTML 内容对于某些元素(如按钮和滚动条)不采用与该操作系统相同的外观:
[code]<META HTTP-EQUIV="MSThemeCompatible" Content="No">[/code]
关闭IE的图像工具栏
IE的图像工具栏有时候很讨厌,在MSDN上无意中发现了关闭方法
图像工具栏可以通过 meta 标记 <META HTTP-EQUIV="imagetoolbar" CONTENT="no"> 来禁用,也可以通过对 IMG 标记元素设置属性 GALLERYIMG="no" 来禁用。
[code]<META HTTP-EQUIV="imagetoolbar" CONTENT="no">[/code]>>>>>>>>>>
如果开发环境是XP系统,IE中的input标签会和XP系统主题相符合,影响了外观的统一,采用下列方法可以关闭.
添加下列 META 标记,可以选择使得您的 HTML 内容对于某些元素(如按钮和滚动条)不采用与该操作系统相同的外观:
[code]<META HTTP-EQUIV="MSThemeCompatible" Content="No">[/code]
关闭IE的图像工具栏
IE的图像工具栏有时候很讨厌,在MSDN上无意中发现了关闭方法
图像工具栏可以通过 meta 标记 <META HTTP-EQUIV="imagetoolbar" CONTENT="no"> 来禁用,也可以通过对 IMG 标记元素设置属性 GALLERYIMG="no" 来禁用。
[code]<META HTTP-EQUIV="imagetoolbar" CONTENT="no">[/code]>>>>>>>>>>
Eclipse下的CVS忽略
[ 2006/08/08 13:25 | by ipaddr ]
Eclipse内置对CVS的集成.
通常情况下,一个Project可能会有部分文件不需要由CVS管理,比如,BIN,uploadfiles之类的文件.
正常方式是在share project时使用addto cvs.ignore忽略不需要CVS管理的文件或文件夹,
但偶尔也会误操作,导致一些不需要的文件进入CVS,这里,你可以如下解决:
假设你的网站根目录有/uploadfiles/不需要提交到CVS
1.在不需要提交进CVS的文件或文件夹的所在目录(/),建立一个.cvsignore文件,将不需要提交到CVS的文件或文件夹在这个文件里列出来,每行一个文件
2.每个目录都会有一个CVS工作目录,进入/uploadfiles/下面,将所有的CVS目录删除
3.进入根目录的/CVS下面,打开Entries文件,将uploadfiles行删除
再用Eclipse进行CVS操作时,该目录会被忽略.
另外,如果CVS服务端修改了module名,客户端需要对应module目录下所有子目录上的CVS里的Repository文件.
>>>>>>>>>>>>
通常情况下,一个Project可能会有部分文件不需要由CVS管理,比如,BIN,uploadfiles之类的文件.
正常方式是在share project时使用addto cvs.ignore忽略不需要CVS管理的文件或文件夹,
但偶尔也会误操作,导致一些不需要的文件进入CVS,这里,你可以如下解决:
假设你的网站根目录有/uploadfiles/不需要提交到CVS
1.在不需要提交进CVS的文件或文件夹的所在目录(/),建立一个.cvsignore文件,将不需要提交到CVS的文件或文件夹在这个文件里列出来,每行一个文件
2.每个目录都会有一个CVS工作目录,进入/uploadfiles/下面,将所有的CVS目录删除
3.进入根目录的/CVS下面,打开Entries文件,将uploadfiles行删除
再用Eclipse进行CVS操作时,该目录会被忽略.
另外,如果CVS服务端修改了module名,客户端需要对应module目录下所有子目录上的CVS里的Repository文件.
>>>>>>>>>>>>
Apache+PHP+Mysql中的mysql_pconnect研究
[ 2006/08/07 16:28 | by ipaddr ]
Apache+PHP+Mysql中的mysql_pconnect研究
mysql_pconnect -- PHP打开一个到 MySQL 服务器的持久连接
通常情况下,使用pconnect代替connect,会带一定的性能提升,详情请参考我写的PHP-JPS性能不完全测试(http://www.eit.name/other/phpjsp.htm)
一直漂(ipaddr,bcomcn)原创,转载请注明
但使用Pconnect会经常的导致Mysql连接失败,提示连接太多,原因在于pconnect后,Apache不会自动关闭mysql的连接.
先来看看APACHE的工作模式
Windows下,Apache使用一个主进程,加一个辅进程,再由辅进程派生N个线程的方式来提供服务,线程的数量可以在httpd.conf里配置:ThreadsPerChild 500,如果指定为500线程,则apache一启动时就会启动500个线程,但最多也只使用500个线程,如果同时连接数量超过500个(可能300个用户访问就有500个连接,判断当前连接的方法,可以使用netstat -na|grep 80|grep EST|wc -l或者使用apache的status module),那么,多余的连接将会在等待或者连接失败.(所以,Windows下Apache的主要配置参数应该是ThreadsPerChild,先根据当前的连接数,再看看有没有必要调大一些,一般PC服务器设置为1000算是比较大了.)
Nix下,Apache使用进程的方式来运行,原理相同,需要调整进程数量的参数有几个,比如ServerLimit.
再来看看Apache+PHP+Mysql_pconnect的工作方式
每当客户端向服务端发送一个连接请求(包括图片,HTML,PHP等),apache将会用一个线程来接受这个请求,如果是请求的是一个PHP文件,且PHP文件里使用了PConnect,则当前线程会判断当前线程有没有打开过pconnect,如果有打开过,则使用原来的mysql connect,如果没有打开过,则新建一个connect,并且,连接断开后,线程仍在运行,而且保持Mysql connect.按这种方式运行一段时间后,完全有可能所有apache的线程都打开过有Pconnect的Php页面,所以,如果apache的ThreadsPerChild=500的话,则500个线程都找开了mysql连接,并且没有关闭,则就要求,mysql的连接数必须大于或等于500,如果小于这个值,将会导致PHP页面提示数据库连接失败.
所以,得出结论,Apache+PHP+Mysql下使用pconnect时,mysql的max_connect必须大于或等于apache的最大线程(进程)数.在一个访问量很大的站点,使用pconnect可能不太现实,最好的办法是,尽可能的将数据库内容生成为静态文件,而不需要每个页面都连接数据库,并且使用mysql_connect(即使将绝大多数页面生成为静态文件,但仍有mysql_pconnect时,同样要求mysql的max_connect大于apache的线程数,所以这种情况下使用pconnect非常不可取).
>>>>>>>>>>>>>>>>
mysql_pconnect -- PHP打开一个到 MySQL 服务器的持久连接
通常情况下,使用pconnect代替connect,会带一定的性能提升,详情请参考我写的PHP-JPS性能不完全测试(http://www.eit.name/other/phpjsp.htm)
一直漂(ipaddr,bcomcn)原创,转载请注明
但使用Pconnect会经常的导致Mysql连接失败,提示连接太多,原因在于pconnect后,Apache不会自动关闭mysql的连接.
先来看看APACHE的工作模式
Windows下,Apache使用一个主进程,加一个辅进程,再由辅进程派生N个线程的方式来提供服务,线程的数量可以在httpd.conf里配置:ThreadsPerChild 500,如果指定为500线程,则apache一启动时就会启动500个线程,但最多也只使用500个线程,如果同时连接数量超过500个(可能300个用户访问就有500个连接,判断当前连接的方法,可以使用netstat -na|grep 80|grep EST|wc -l或者使用apache的status module),那么,多余的连接将会在等待或者连接失败.(所以,Windows下Apache的主要配置参数应该是ThreadsPerChild,先根据当前的连接数,再看看有没有必要调大一些,一般PC服务器设置为1000算是比较大了.)
Nix下,Apache使用进程的方式来运行,原理相同,需要调整进程数量的参数有几个,比如ServerLimit.
再来看看Apache+PHP+Mysql_pconnect的工作方式
每当客户端向服务端发送一个连接请求(包括图片,HTML,PHP等),apache将会用一个线程来接受这个请求,如果是请求的是一个PHP文件,且PHP文件里使用了PConnect,则当前线程会判断当前线程有没有打开过pconnect,如果有打开过,则使用原来的mysql connect,如果没有打开过,则新建一个connect,并且,连接断开后,线程仍在运行,而且保持Mysql connect.按这种方式运行一段时间后,完全有可能所有apache的线程都打开过有Pconnect的Php页面,所以,如果apache的ThreadsPerChild=500的话,则500个线程都找开了mysql连接,并且没有关闭,则就要求,mysql的连接数必须大于或等于500,如果小于这个值,将会导致PHP页面提示数据库连接失败.
所以,得出结论,Apache+PHP+Mysql下使用pconnect时,mysql的max_connect必须大于或等于apache的最大线程(进程)数.在一个访问量很大的站点,使用pconnect可能不太现实,最好的办法是,尽可能的将数据库内容生成为静态文件,而不需要每个页面都连接数据库,并且使用mysql_connect(即使将绝大多数页面生成为静态文件,但仍有mysql_pconnect时,同样要求mysql的max_connect大于apache的线程数,所以这种情况下使用pconnect非常不可取).
>>>>>>>>>>>>>>>>
Windows+Apache下PHP安装iconv
[ 2006/07/18 23:33 | by ipaddr ]
Windows+Apache下PHP安装iconv
Nix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将php.ini里的配置打开相应的dll就可,例如,需要加入gb库的支持,需要如下设置:
extension_dir = "C:/ipaddr/php/extensions/"
(注意,建议写全地址,并且后面加上/,很多时候是因为这里设置不对,才导致无法加载其它模块的dll的)
再打开
extension=php_gd2.dll
但如果是安装iconv.dll,按上面方法,打开php_iconv.dll后,还是无法开启iconv模块,需要如下配置:
a.上iconv的官方下载站点
http://ftp.gnu.org/pub/gnu/libiconv/
下面Windows版的iconv文件:libiconv-1.9.1.bin.woe32.zip
将这文件解压,将bin/下面的charset.dll,iconv.dll,iconv.exe拷贝到c:/windows/ (或其它的系统PATH中)
(ipaddr提醒你,这步是必须的,php_iconv.dll也是调用GNU的iconv库的,所以,先要安装GNU的iconv库)
b.开启php.ini里面的php_iconv.dll
c.重启Apache,再在phpinfo();检测是否开启iconv。
>>>>>>>>>>>>>>>>>>
Nix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将php.ini里的配置打开相应的dll就可,例如,需要加入gb库的支持,需要如下设置:
extension_dir = "C:/ipaddr/php/extensions/"
(注意,建议写全地址,并且后面加上/,很多时候是因为这里设置不对,才导致无法加载其它模块的dll的)
再打开
extension=php_gd2.dll
但如果是安装iconv.dll,按上面方法,打开php_iconv.dll后,还是无法开启iconv模块,需要如下配置:
a.上iconv的官方下载站点
http://ftp.gnu.org/pub/gnu/libiconv/
下面Windows版的iconv文件:libiconv-1.9.1.bin.woe32.zip
将这文件解压,将bin/下面的charset.dll,iconv.dll,iconv.exe拷贝到c:/windows/ (或其它的系统PATH中)
(ipaddr提醒你,这步是必须的,php_iconv.dll也是调用GNU的iconv库的,所以,先要安装GNU的iconv库)
b.开启php.ini里面的php_iconv.dll
c.重启Apache,再在phpinfo();检测是否开启iconv。
>>>>>>>>>>>>>>>>>>
关于LoadRunner的VUGen中文乱码问题
[ 2006/07/05 23:33 | by ipaddr ]
LoadRunner的VUser Gen在录制Script时,如果网站采用的是UTF8编码,录出来的脚本,很多乱码,需要设置一下LoadRunner,方法如下:
在Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8
就OK了.(一直漂原创,转载请注明
>>>>>
在Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8
就OK了.(一直漂原创,转载请注明
>>>>>
javascript判断变量是否定义
[ 2006/06/23 23:34 | by ipaddr ]
直接使用未定义的Javascript变量时,页面会报错并无法执行,比如
if (varName=="")
{
}
需要先判断变量是否定义,使用typeof函数可以判断,如下使用:
if (typeof(ipaddr)=='undefined')
{
window.alert('ipaddr未定义');
}
>>>>>>>>>>>>>>>>>>
if (varName=="")
{
}
需要先判断变量是否定义,使用typeof函数可以判断,如下使用:
if (typeof(ipaddr)=='undefined')
{
window.alert('ipaddr未定义');
}
>>>>>>>>>>>>>>>>>>
Windows下PHPMyAdmin错误"没有发现 PHP 的扩展设置mbstring"
[ 2006/05/24 23:26 | by ipaddr ]
Windows下安装Apache,PHP,Mysql,PHPMyAdmin,
PHPMyAdmin提示没有发现 PHP 的扩展设置mbstring,主要原因是PHP不支持mbstring
解决办法:
1.Nix下,编译PHP时加上mbstring支持
2.Windows下,配置php.ini
extension_dir = "c:/php/extensions/"
(建议写全路径,并且,后面要带/)
extension=php_mbstring.dll
可能通过查看phpinfo();来确认php.ini的位置以及PHP当前支持的一些特性。
>>>>>>>>>>>>>>>>>
PHPMyAdmin提示没有发现 PHP 的扩展设置mbstring,主要原因是PHP不支持mbstring
解决办法:
1.Nix下,编译PHP时加上mbstring支持
2.Windows下,配置php.ini
extension_dir = "c:/php/extensions/"
(建议写全路径,并且,后面要带/)
extension=php_mbstring.dll
可能通过查看phpinfo();来确认php.ini的位置以及PHP当前支持的一些特性。
>>>>>>>>>>>>>>>>>