Posts Tagged ‘技巧’

解决MySQL和PHP问题的几点总结

星期六, 28 8 月, 2010

1. PHP函数传递引用参数的定义:
[php toolbar=”false”]
function test($in, &$out) {
$out = $in * 100;
return $in % 10;
}
[/php]

2. 时间格式

MySQL定义datetime类型的数据段,PHP可以使用date(“Y-m-d H:i:s”)获得当前时间赋值给该字段:
[php toolbar=”false”]//date字段是datetime类型
$strSQL = “insert into test(date) values(‘” . date(“Y-m-d H:i:s”) . “‘)”;
$availableDate = date(“Y-m-d H:i:s”, strtotime(“-30 minute”)); // 时间计算:半小时前
[/php]

(更多…)

正则表达式中使用问号可以取消贪婪模式

星期五, 27 8 月, 2010

使用正则表达式抽取整个页面的特定内容是非常方便的,但在使用时有一些细节问题还是很关键的,比如合理的使用问号(?)可以取消贪婪的抽取问题。

比如页面中包含有很多段<p>…</p>,如果我们使用下面的方法抽取:

[csharp toolbar=”false”]
Regex rx = new Regex(“<p>(.*)</p>”);
Match match = rx.Match(str); // match.NextMatch(); 可用来取下一个
[/csharp]

结果是只提出一个,内容是从第一个<p>开始到最后一个</p>结束。

这里我们只要加上问号,如下代码:

[csharp toolbar=”false”]
Regex rx = new Regex(“<p>(.*?)</p>”);
Match match = rx.Match(str);
[/csharp]

这时提到出来的就是一个个独立的<p>…</p>,有时这才是我们想要的。

另外上面正则表达式里的括号也很有用,使用match.Group[0]得到匹配的结果,用match.Group[1]即得到括号中的内容。有多个括号按从外到内、从左到右的原则依次从Group里取。

PS. C#中还有个Group的概念,挺鬼异的,这里有解释,抽空研究一下:http://blog.csdn.net/zhoufoxcn/archive/2010/03/09/5358644.aspx

Updated:更多正则表达式的揭密参见这里:http://www.regexlab.com/zh/regref.htm

几个批处理的写法

星期四, 29 7 月, 2010

1. 取传入参数时把参数的双引号去掉:[text light=”true”]set PARA=%~1[/text]

2. 判断参数为空时跳转:[text light=”true”]if “%~1″==”” goto Usage
:Usage
echo Usage: abc.bat [PARAMETER][/text]
参数前后要加上双引号,比如用“if %1==”” goto Usage”会出错。

3. 内容替换:[text light=”true”]set P=%cd%
set P=%P:\=\\%[/text]
第1行把当前目录赋给P参数,第2行把“\”替换成“\\”。

4. 内容提取:[text light=”true”]set D=%date:~0,10%
set D=%D:-=%
set T=%time:~3,5%
set T=%T::=%[/text]
第1行把“2010-07-29 星期四”此类格式的日期前10个字符即“2010-07-29”赋给D,第2行把D参数的“-”替换为空,即D是“20100729”;
第3行把“13:39:08.90”此类格式的时间从第4个字符起连取5个字符即“39:08”赋给T,第4行把T参数的“:”替换为空,即T是“3908。”

4. 重定向输出:[text light=”true”]echo Hello Word!>C:\out.txt
echo.>>C:\out.txt[/text]
第1行把“Hello Word!”重定向输出到“C:\out.txt”文件中,如果文件已存在则替换,否则新建;
第2行追加一个空行到“C:\out.txt”文件中。

通过修改.htaccess文件解决重定向的问题

星期四, 15 7 月, 2010

本站原博客目录被GFW认证后打开原来的搜索结果墙内都会出现连接被重置,而墙外(含翻墙者)访问则出现404错误,解决方法是对原来的访问链接进行重定向。

使用空间自带的cPanel可以实现重定向的设置,不过存在一些小问题,我们可以在其结果的基础上做一些小改动。

比如我要把http://www.lordong.net/blog/*重定向到/wp/*,cPanel的结果是:
RewriteCond %{HTTP_HOST} ^lordong.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.lordong.net$
RewriteRule ^blog\/\/?(.*)$ “http\:\/\/lordong\.net\/wp\/$1” [R=301,L]

这时所有的搜索结果通过墙外访问时都会由blog重定向到wp目录,也就是可以继续访问了。问题是如果直接输入http://www.lordong.net/blog(不以“/”结尾的情况)会显示出错,而在cPanel里又不能直接再添加这一项。

因此我们改为手动修改.htaccess文件(cPanel的设置会写到这个文件),最终结果如下(把两行RewriteCond合并):
RewriteCond %{HTTP_HOST} ^(www.)?lordong.net$
RewriteRule ^blog$ /wp/ [R=301,L]

RewriteCond %{HTTP_HOST} ^(www.)?lordong.net$
RewriteRule ^blog/(.*)$ /wp/$1 [R=301,L]

通过这样修改后原来在Google Reader中订阅http://www.lordong.net/blog/feed的用户又可以继续看到新的文章了。不过如果是墙内的Reader还是被重置。

另外昨天做的“把博客的Feed托管到其它服务”,由于使用了FeedBurner FeedSmith插件,导致FeedSky源Feed被转向到FeedBurner,而后者的结果Feed是被墙的,所以FeedSky总是更新失败,禁用这个插件就解决了。

WordPress屏蔽评论自动识别链接

星期三, 12 5 月, 2010

别人在这个博客评论时贴上了Dropbox的host IP,其中以www开头的行变成了链接,为此我还专门去编辑了一下,结果还是出来链接。

还是借助万能的Google,搜索到这篇文章,照着做果然解决。

修改的文件:wp-includes/default-filters.php

WordPress v2.9.2 修改这个文件的第123,在行前加上“//”符屏蔽掉即可,效果图:

成功在收费空间和免费空间之间迁移域名

星期五, 7 5 月, 2010

前一篇文章“空间流量吃紧,月底流量将枯竭”提到收费空间流量不够的情况,为此特地去FreeCcHost.com注册了支持顶级域名的空间。

免费空间申请成功,花了些时间把收费空间上的博客迁到这个免费空间,现在这篇文章就是在迁移成功后的免费空间上完成的。

迁移过程的一些步骤:
1. 第一次先在原空间的cPanel后台通过“文件管理器”把整个blog目录备份,然后下载到本地再上传到新空间。(其它需要迁移的目录也如此操作)
2. 到新空间的cPanel后台把刚上传的blog压缩包解压,保持目录结构跟原空间一致。
(更多…)

MP3文件的简单合并方法

星期四, 6 5 月, 2010

有些情况MP3文件过短(比如一些英文片段,20秒左右),通过手机蓝牙耳机接听时,在文件播放完切换时蓝牙耳机会发出断开再连接的两个“嘀”声,同时下一个文件开始放出声音时已经流逝好几秒钟,既受“嘀”声影响情绪又听不到开头的片段,所以冒出了要几个文件合并成一个的想法。

最简单的方法是使用Windows系统自带的copy命令:(/b 参数是以二进制方式处理文件)
C:\>copy 文件1 /b + 文件2 /b + … + 文件n /b 目标文件 /b

比如:
C:\>copy 001.mp3 /b + 002.mp3 /b + 003.mp3 /b p001.mp3 /b
是把001.mp3、002.mp3和003.mp3三个mp3文件按先后顺序合并到p001.mp3文件中,结果是p001.mp3包含了三个mp3文件的内容,而原来的三个文件仍保持原样。

至于怎么编辑MP3等音乐文件呢,这里推荐一款已注册破解的小工具GoldWave 5.55 汉化版,本地下载:GoldWave555.rar

黑莓手机几点使用技巧及问题解决方法

星期一, 15 2 月, 2010

黑莓隐藏功能一览

1. 进入LOG : 按住ALT再按LGLG
2. 手机测试:选项->状态,输入“test”(不含双引号,增强键盘对应的字母如在第2位要按两次该键,比如s,下同)
3. 显示IMEI串号:拨号状态下输入*#06#,然后按拨号键
4. 查看网络禁用状态:选项->高级选项->sim卡,输“mepd”
5. 显示通话总时间:选项->状态.,依次输入字符“BUYR” (好象不可行)
6. 显示详细通话纪录:短信界面,按住ALT+P
7. 查看ROM版本:全键盘按住ALT+CAP+H,进入Help me(帮帮我)界面,增强键盘按住alt键不动连着输”1?71″四个键,全键盘也可以按住alt键不动连着输”2*92″四个键
8. 手机信号的图标换成数字显示:alt+nmll
9. 重启:全键盘按住atl+右cap+del
(更多…)

CuteFTP设置的一点小技巧

星期二, 15 12 月, 2009

CuteFTP是比较常用的FTP上传下载工具,合理设置好传输选项可以提高上传下载的速度。

启用CuteFTP的智能覆盖可以跳过一些不变化的内容,从而减少上传下载的理,也就提高了速度。

下图是我的设置:

(更多…)

Windows注册表文件的使用技巧

星期五, 5 12 月, 2008

Windows注册表文件常用“.reg”做后缀名,使用regedit.exe导入到注册表中,通过reg文件可以实现往注册表里添加、删除、修改主键或键值,也可以删除主键或键值。

regedit.exe导入reg文件的常用命令行参数:regedit.exe /S 文件名.reg
其中“/S”参数指的是静默(Silence)安装,即不出现任何提示框,可选参数。

reg文件的格式说明
1. reg文件的第一行说明版本号,Windows 98及之前操作系统使用“REGEDIT4”表示,WIndows 2000及之后操作系统使用“Windows Registry Editor Version 5.00”,同时也兼容“REGEDIT4”。
2. 主键以左中括号“[”和右中括号“]”括起,如“[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]”。
3. 在主键下的所有键值列属于该主键,直到文件结尾或下一个主键前结束。
4. 键值的格式是“Key=Value”,其中Key总是以半角双引号括起,Value有3种常用的类型:字符串、DWORD、BINARY。
4.1 字符串类型的Value总是以半角双引号括起,比如“"Close"="CloseTSObject"”。
4.2 DWORD类型的Value以十六进制表示并带有dword关键字,比如“"Collect Timeout"=dword:000003e8”。
4.3 BINARY类型的Value以十六进制表示并带有hex关键字,比如“"WbemAdapFileTime"=hex:00,a0,13,80,5e,3c,c6,01”。

reg文件的技巧
1. 添加主键:直接以主键格式写上即可,比如“[HKEY_CURRENT_USER\A]”表示在HKEY_CURRENT_USER下添加A主键,如果主键已经存在则忽略。
2. 添加键值:直接以键值格式写上即可,比如“"BlockXBM"=dword:00000000”表示在主键下添加BlockXBM键值,类型是DWORD,值是0,如果键值已经存在则替换。
3. 删除主键:直接以主键格式写上,并在左中括号和HKEY之间加减号“”,比如“[HKEY_CURRENT_USER\A]”表示删除HKEY_CURRENT_USER下的A主键。
4. 删除键值:直接以键值格式写上,Value的内容改为减号“”,比如“"Open"=”表示删除主键下的Open键值。
5. 修改主键的默认键值:使用“@”代替Key并省略半角双引号,即“@=Value”,Value的格式同前,Value为减号“-”表示清除默认键值。

举例:《Win2K_XP便捷右击菜单.reg》的内容
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\DOS Command\command]
@="\"cmd.exe\" \"%1\""

[HKEY_CLASSES_ROOT\Drive\shell\DOS Command\command]
@="\"cmd.exe\" \"%1\""

[HKEY_CLASSES_ROOT\dllfile\shell\Register\command]
@="\"regsvr32.exe\" \"%1\""

[HKEY_CLASSES_ROOT\dllfile\shell\Unregister\command]
@="\"regsvr32.exe\" /U \"%1\""

[HKEY_CLASSES_ROOT\ocxfile\shell\Register\command]
@="\"regsvr32.exe\" \"%1\""

[HKEY_CLASSES_ROOT\ocxfile\shell\Unregister\command]
@="\"regsvr32.exe\" /U \"%1\""

[HKEY_CLASSES_ROOT\Directory\shell\Attrib_out\command]
@="\"attrib.exe\" -r -h -s \"%1\\*.*\" /s"