“软件技巧”目录存档

一个php处理表单验证类

2010年08月29日,星期日
热度:

PHP代码
<?php
class class_post
{
//验证是否为指定长度的字母/数字组合
function fun_text1($num1,$num2,$str)
{
Return (preg_match(“/^[a-zA-Z0-9]{“.$num1.”,”.$num2.”}$/”,$str))?true:false;
}
//验证是否为指定长度数字
function fun_text2($num1,$num2,$str)
{
return (preg_match(“/^[0-9]{“.$num1.”,”.$num2.”}$/i”,$str))?true:false;
}
//验证是否为指定长度汉字
function fun_font($num1,$num2,$str)
{
// preg_match(“/^[\xa0-\xff]{1,4}$/”, $string);
return (preg_match(“/^([\x81-\xfe][\x40-\xfe]){“.$num1.”,”.$num2.”}$/”,$str))?true:false;
}
//验证身份证号码
function fun_status($str)
{
return (preg_match(‘/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/’,$str))?true:false;
}
//验证邮件地址
function fun_email($str){
return (preg_match(‘/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/’,$str))?true:false;
}
//验证电话号码
function fun_phone($str)
{
return (preg_match(“/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/”,$str))?true:false;
}
//验证邮编
function fun_zip($str)
{
return (preg_match(“/^[1-9]\d{5}$/”,$str))?true:false;
}
//验证url地址
function fun_url($str)
{
return (preg_match(“/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\"\"])*$/”,$str))?true:false;
}
// 数据入库 转义 特殊字符 传入值可为字符串 或 一维数组
function data_join($data)
{
if(get_magic_quotes_gpc() == false)
{
if (is_array($data))
{
foreach ($data as $k => $v)
{
$data[$k] = addslashes($v);
}
}
else
{
$data = addslashes($data);
}
}
Return $data;
}
// 数据出库 还原 特殊字符 传入值可为字符串 或 一/二维数组
function data_revert($data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2] = stripslashes($v2);
}
}
else
{
$data[$k1] = stripslashes($v1);
}
}
}
else
{
$data = stripslashes($data);
}
Return $data;
}
// 数据显示 还原 数据格式 主要用于内容输出 传入值可为字符串 或 一/二维数组
// 执行此方法前应先data_revert(),表单内容无须此还原
function data_show($data)
{
if (is_array($data))
{
foreach ($data as $k1 => $v1)
{
if (is_array($v1))
{
foreach ($v1 as $k2 => $v2)
{
$data[$k1][$k2]=nl2br(htmlspecialchars($data[$k1][$k2]));
$data[$k1][$k2]=str_replace(“ ”,” ”,$data[$k1][$k2]);
$data[$k1][$k2]=str_replace(“\n”,”<br>\n”,$data[$k1][$k2]);
}
}
else
{
$data[$k1]=nl2br(htmlspecialchars($data[$k1]));
$data[$k1]=str_replace(“ ”,” ”,$data[$k1]);
$data[$k1]=str_replace(“\n”,”<br>\n”,$data[$k1]);
}
}
}
else
{
$data=nl2br(htmlspecialchars($data));
$data=str_replace(“ ”,” ”,$data);
$data=str_replace(“\n”,”<br>\n”,$data);
}
Return $data;
}
}
?>

Excel工作表的任意单元格中设页码

2010年08月24日,星期二
热度:

在Excel中设置第几页共几页,绝大部分人会想道用“页面设置”,但你是否想过将“第N页/总M页”放到任意单元格中?而不仅仅是置于页眉页脚中?

方法一,用VBA

Function page()

page = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)

Application.Volatile

End Function

用VBA本人只知道总页码的方法,当前页码就难倒我了,还请VBA高手指教

方法二,用宏表函数与公式

1. 首先:点CTRL+F3打开定义名称,再在上面输入“纵当页”,在下面引用位置处输入:

=IF(ISNA(MATCH(ROW(),GET.DOCUMENT(64))),1,MATCH(ROW(),GET.DOCUMENT(64))+1)

2.然后再继续添加第二个名称:“横当页”,在下面引用位置处输入:

=IF(ISNA(MATCH(column(),GET.DOCUMENT(65))),1,MATCH(column(),GET.DOCUMENT(65))+1)

3.再输入“总页”;引用位置处输入:

=GET.DOCUMENT(50)+RAND()*0

4.最后再定义“页眉”,引用位置:

=”第”&IF(横当页=1,纵当页,横当页+纵当页)&”页/共”&总页&”页”

5.在函数栏使用应用即可得到需要的页码

http://news.mydrivers.com/1/172/172924.htm

打印Excel打印指定区域

2010年08月24日,星期二
热度:

一、区域设置法

如果每次都是打印某一个固定的区域,用这种方法是最合适的。

启动Excel 2003(其它版本请仿照操作),打开相应的工作簿文件,选中需要打印的区域,执行“文件→打印区域→设置打印区域”命令。以后,需要打印该区域时,只要按一下“常用”工具栏上的“打印”按钮就行了。

[友情提醒]此时,如果需要打印整个工作表的内容,请先取消设置的打印区域:执行“文件→打印区域→取消打印区域”命令。

二、打印区域法

如果要想打印多个不同的区域,请采取此种方法。

选中需要打印的区域,执行“文件→打印”命令,打开“打印内容”对话框,选中“打印内容”下面的“选定区域”选项,然后确定打印就行了。

[友情提醒]①无论是否设置了打印区域,此方法都是有效的。②如果同时选中了多个不连续的数据区域,进行上述操作时,系统只将每个连续的区域打印在 一页上。③在“打印内容”对话框中(参见图1),选中“打印范围”下面的“页”选项,然后在后面的方框中输入起始页码,即可将指定的页打印出来。(在 Word中,仿照此操作,也可以将指定的页打印出来。)

三、视面管理法

如果经常要打印多个不同的区域,采取方法二操作,既麻烦又容易出错,建议大家采用本办法。

执行“视图→视面管理器”命令,打开“视面管理器”对话框,单击其中的“添加”按钮,打开“添加视图”对话框,输入一个全称(如“全部”),确定退出。

选中不需要打印的列(行),右击鼠标,在随后弹出的快捷菜单中选“隐藏”选项,将不需要打印的列(行)隐藏起来,然后再打开“视面管理器”对话框,“添加”一个“视面视图”(如“打印报表”等),确定退出。

提醒大家在按住Ctrl键的同时,用鼠标分别单击相应的列(行),可以一次性同时选定多个不连续的列(行),一次性实现上述隐藏操作。

再次打开“视面管理器”对话框,选中“全部”视图项,单击“显示”按钮,将整个工作表都显示出来。然后仿照上面的操作,将另外一些不需要打印的列(行)隐藏起来,再“添加”另一个“视面视图”(如“标牌”等),确定退出。

以后需要打印某个区域时,先打开“视面管理器”对话框,选中相应的视图(如“打印报表”)项,单击“显示”按钮,将相应的视图显示出来,然后执行打印操作就行了。

四、宏命令法

启动Excel,打开相应的工作簿(,按下“Alt+F11”组合键,进入“Visual Basic编辑器”状态,在左侧“工程资源管理器”窗口中,选中上述工作簿对话的工程(如VBProject(2004备案.xls)),执行“插入→模 块”命令插入一个新模块(“模块1”),然后将下述代码输入到右侧的窗口中:

sub 打印()

selection.print out

end sub

输入完成后,关闭“Visual Basic编辑器”窗口返回。

选中需要打印的区域,执行“工具→宏→宏”命令,打开“宏”对话框,选中刚才编辑的宏(“打印”),单击“执行”按钮即可。

友情提醒大家,如果在“工程资源管理器”窗口中选中VBProject(Personal.xls)选项,则上述宏对所有的工作簿文件有效。

http://news.mydrivers.com/1/172/172934.htm

浏览器之间收藏夹导入导出的方法(转)

2010年08月14日,星期六
热度:

我现在使用的是搜狗浏览器,整体感觉还是很不错的!但是因为是IE的内核,所以在我的联想S10小本上面运行起来的话还是没有谷歌浏览器那么流畅。搜狗有个不错的功能,就是能够将收藏夹导入到它的服务器进行保存,这样在任何地方,任何电脑登录的话都可以使用了。今天我发现google chrome浏览器也是有的,于是就打算转向谷歌浏览器。那么就牵涉到必须把以前保存到搜狗的收藏网址导入到谷歌浏览器里面,来看看我是怎么做的。

因为搜狗浏览器的导出网址比较特殊,是一个单文件,形如Backup20091223164419.xml这样的格式的。如果直接进入谷歌浏览器的话肯定是不可以的,那么我们可以做一个中转,将搜狗的收藏夹导入到IE,再从IE导入到谷歌浏览器。

一、搜狗收藏夹导入到IE收藏夹

网站有几个小工具,经过我的测试,有一个小工具是可以用的。

如果里面显示的是初始状态的收藏夹,而不是你的网络账户上面的收藏夹,则需要退出网络账户,菜单栏的账户——退出账户就可以了,然后把你刚才导出的收藏夹文件,比如我的Backup20091223164419.xml再次导入到IE浏览器里面。这样就和网络账户的一样了。

再次运行SE2IE这个小工具,现在里面显示的是你的最新的收藏夹状态。直接点击导出到IE就可以啦。

软件下载:SE2IE.rar

二、从IE导出到google chrome

这也是用一个工具来实现的,这个工具很强大,支持的浏览器种类很多,大家可以看看就知道了。

选择好源浏览器和目的浏览器,直接点击开始就可以啦。

PS:Transmute这个需要在NET2.0的环境下运行,提供给大家的压缩包里面就已经包含了,先安装NET2.0,再装软件。

软件下载:Transmute157Setup.rar

收藏夹经常的备份有很多的好处,而且最好找一个支持网络同步收藏夹的浏览器,这样对于许多重要的东西,你在任何地方都可以使用了,比如你在网吧看见有个网站不错,那么收藏好了,同步一下,下次还可以登录账户,直接使用,这个是很不错的。

硬盘的传输速率是什么意思?

2010年08月11日,星期三
热度:

硬盘的传输速率就是硬盘的读写速度,这个越快越好,我给你找了一片相关知识,你一看就明白了!

硬盘的传输速率:作为电脑中最重要的数据存储设备和数据交换媒介,硬盘传输速率的快慢直接影响
了系统的运行速度。不同类型的硬盘,其传输速率往往差别很大。现在主流硬盘主要有三种:按照不
同的接口可以分为并口ATA硬盘(即IDE硬盘)、SCSI硬盘和Serial ATA硬盘。

IDE接口硬盘在当前电脑中应用最为广泛,主流的规格包括ATA/66、ATA/100、ATA/133,这种命名
方式也表明了它们在理论上的外部最大传输速率分别达到了66MB/s、100MB/s和133MB/s。这里需要
说明:100MB/s、133MB/s是峰值速度,并不能表示硬盘能持续这个速度,也就是说这是理论上的最
高峰值速度。

硬盘真正的传输速度由于受硬盘内部传输速率的影响,其稳定传输速率一般在30MB/s到45MB/s之间。
这样随着CPU、内存等硬件运行速度的不断提高,ATA硬盘的低速率渐渐成为影响整机运行速度的瓶颈。
于是,一种新的硬盘接口方式,Serial ATA应运而生。

Serial ATA 硬盘就是我们常说的串口硬盘,它采用点对点的方式实现了数据的分组传输从而带来更高的传输效率。Serial ATA 1.0版本硬盘的起始传输速率就达到150MB/s,而Serial ATA 3.0版本将实现硬盘峰值数据传输率为600MB/s,从而最终解决硬盘的系统瓶颈问题。

SCSI接口不是专为硬盘设计的,实际上它是一种总线型的接口,独立于系统总线工作。SCSI接口的
硬盘以高稳定性、低CPU占有率而被广泛应用于服务器和专业工作站中,它的传输速率最高可达320MB/s
当然,对于硬盘的整体性能而言,除了硬盘的传输速率,硬盘的转速、缓存及平均寻道时间等也是重要的因素。

小知识:1.硬盘的内部数据传输率

内部数据传输率是磁头到硬盘的高速缓存之间的数据传输速度,这可以说是影响硬盘整体性能的关键,
一般取决于硬盘的盘片转速和盘片数据线密度。在这项指标中常常使用MB/s或Mbps为单位,这是兆位/秒
的意思,如果需要转换成MB/s(兆字节/秒),就必须将Mbps数据除以8。例如有的硬盘给出最大内部数据
传输率为240Mbps,但如果按MB/s计算就只有30MB/s。由此可以看出目前硬盘作为电脑的瓶颈,其病根
还在于硬盘的内部数据传输率上。

2.硬盘的外部数据传输率

指从硬盘缓冲区读取数据的速率。它与硬盘的接口类型是直接挂钩的,因此在广告或硬盘特性表中常
以数据接口速率代替,单位为MB/s如我们平常所说的ATA100/133硬盘。

光驱的传输速率:通常光驱传输速率的高低取决于光驱的倍速,如16X DVD、52X的CD-ROM,一般
情况下光驱的倍速越高,数据传输也就越快。那么“倍速”是个什么概念呢?原来很早以前CD-ROM的
传输速率很低,每秒只能传送150KB字节,即最初光驱的速率为150KB/s,这就是1X(单倍速)的
CD-ROM光驱。后来随着CD-ROM光驱技术的日新月异,其速率越来越快,为了区分不同速率的光驱,
于是把最初的150KB/s作为基准进行衡量得到相应的倍速值。如50X的CD-ROM就是指其传输的速度
是1X光驱的50倍即其速率为50×150KB/s=7500KB/s。而现在流行的DVD-ROM的速率算法也基本相
同,只不过DVD-ROM的单倍速率要比CD-ROM高得多,一倍速的DVD-ROM速率理论上可以达到1358KB/s
由此我们可以算出现在流行的16倍速DVD-ROM的速度应该是1358KB/s×16=21728KB/s。

如何恢复丢失的QQ好友

2010年08月10日,星期二
热度:

实用技巧:两招恢复丢失的QQ好友现在用QQ的人是越来越多,但在使用中当人们遇到一些棘手问题时却不知该如何解决。例如有的人QQ被盗在重新拿回原号后,经常会发现自己的好友信息全没了。还有人是不小心误删了好友,想要重新找回却不知怎么却找。

其实,这些看似头疼的问题解决起来并不困难。OK,现在我就教你两招好友恢复的独门秘技。

秘技一:

这招秘技其实非常简单,很多朋友看后也许会认为这不是秘技。嘿嘿,这招虽然简单,但目前知道的人很少。既然你不知道,我要是不告诉你那它就是秘技了。其实针对QQ好友恢复的问题,腾讯已经推出了非常简便的QQ好友恢复系统。你只需登陆huifu.qq.com就能看到这个系统,它的页面非常简洁就三个框,让你填入QQ号码、密码和验证码,填完后点击登录你就进入系统了。在这个页面你有三个选项可以选择:恢复四周内被删除的好友、仅恢复两周内被删除的好友和仅恢复一周内被删除的好友。也就是说只要是一个月内被删除的好友,你都可以选择恢复。当你确认选项按下提交键后,好啦问题就全解决了。

慢着,对QQ会员来说确实是全解决了,这时只要他从新登录QQ,被删的好友列表就又重新恢复了。但是对普通用户来说还要进行一点小操作,在重新登录QQ后还需要点击QQ主面板上的“菜单”按钮,在弹出的菜单项目中选择“好友与资料”,在子选项中选择“更新好友”即可。

秘技二:

这一招是专为那些没能找回被盗QQ号的朋友准备的,这时你只能申请一个新的QQ号,但原来那几十上百的好友却不知该如何找回。听好了,这时首先你需要用新号码登录一次,然后关闭QQ,这样做是为了建立新QQ的文件夹。然后在C盘的Program Files文件中的Tencent文件里,你能看到QQ文件夹,点开后你会发现原来的QQ号码文件夹和新QQ号码文件夹都在这里。打开原QQ号码文件夹,找到“user.db”文件,这就是你的好友列表。复制它然后打开新QQ号码文件夹将里面也有的“user.db”文件覆盖掉,然后打开QQ,登陆。看看你的新QQ,是不是好友列表回来了。

但是不要高兴的太早,你会发现他们是永远不会上线的。先不要着急,接下来就是我们最关键的一步了,打开好友管理器,在好友列表里选中自己想要加的人,选择多人的话要按着ctrl键, 选好后再把刚才选中的好友全拉到陌生人一栏里,看到这里,你可能要问,为什么要删除他们啊?因为这是让他们复活的关键一步。然后到陌生人一栏中,像刚才一样选中你的好友,再把他们拉会到好友列表里,复活成功,不过接下来的事情可就要让你忙一阵子了,这回要跳出好多要求好友确认的对话框,你就慢慢点着吧,虽然这个办法有点笨,但是目的还是达到了。

OK,现在QQ里的好友都找回来了,然后做什么,聊天?不,赶紧去申请密码保护吧!免得这个QQ又掉了!

修改注册表,加快宽带上网速度修改注册表,加快宽带上网速度

2010年08月9日,星期一
热度:

先说说原理:通常情况下,TCP/IP默认的数据传输单元接受缓冲区的大小为576字节,要是将这个缓冲区的大小设置得比较大的话,一旦某个TCP/IP分组数据发生错误时,那么整个数据缓冲区中的所有分组内容,都将被丢失并且进行重新传送;显然不断地重新进行传输,会大大影响ADSL传输数据的效率。为此,设置合适缓冲区大小,确保ADSL传输数据的效率始终很高,将会对ADSL传输速度有着直接的影响!

接下来是操作步骤,看仔细了哦

打开注册表编辑器(开始-运行-输入REGEDIT),在其中 找到“HKEY_LOCAL_MACHINE\System\CurrenControlSet\Services\Tcpip\Parameters”子键,在右边键值区中,找到或新建一个名为“GlobalmaxTcp WindowSize”的DWORD键值项,将其数据值数据设为“256960”(十进制)      关闭注册表编辑器,重新启动电脑即可。 感觉一下是不是速度比以前快多了?

http://softbbs.pconline.com.cn/9590929.html

windowsXP文件夹添加背景

2010年08月9日,星期一
热度:

在Windows XP中设置文件夹背景[转贴]

http://blog.hexun.com/chongxun/1219531/rss/viewarticle.html

在Windows XP以前,我们都可以设置文件夹背景,比如你打开一个文件夹,你可以设置一幅赏心悦目的背景图,这样会增加“XP”,但是Windows XP中却没有这项功能。其实背景的文件夹里都有个desktop.ini文件,我们可以通过修改desktop.ini文件来设置Windows XP文件夹背景。

[ExtShellFolderViews]

{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}

[{BE098140-A513-11D0-A3A4-00C04FD706EC}]

Attributes=1

IconArea_Image=E:19.jpg

//这里设置你的背景图片的路径

[.ShellClassInfo]

ConfirmFileOp=0

一、文件夹图标随心换
用过Windows XP的朋友会发现,在“我的文档”中有“我的音乐”、“我的视频”、“图片收藏”等3个文件夹,它们的图标与其他文件夹是不同的。同样是文件夹,它们为什么会与众不同?其实在这些文件夹下都有一个名为Desktop.ini的隐藏文件,也正是因为这些desktop.ini文件的存在才使得这些文件夹图标能呈现出不同效果。下面以笔者电脑中的一个Desktop.ini文件为例,向大家展示其庐山真面目图标Desktop.ini文件

能改变文件夹图标的为图1中框内的部分,它的一般格式如下:

[.ShellClassInfo]

InfoTip=图标文件注释

IconFile=图标文件的路径

IconIndex=选择要使用文件中的第几个图标

知道了这些,我们就可以自己编辑一个Desktop.ini文件,使它所在的文件夹图标变成我们想要的形式。例如打开记事本编辑如下内容:

[.ShellClassInfo]

IconFile=%ProgramFiles%\Windows Media Player\wmplayer.exe

IconIndex=0

保存为Desktop.ini后,是不是发现它所在的文件夹图标已经变成Windows Media Player的图标了。从此,呆板枯燥的文件夹图标开始变得丰富多彩起来了,怎么样,是不是很靓?

其实在Windows XP中,另有一种方法可以更为简单地实现这一功能。鼠标右键单击目标文件夹,打开属性对话框,单击“自定义”选项卡,在“文件夹图标”项单击“更改图标”后会弹出“为文件夹类型目标文件夹名 更改图标”对话框在这里,用户可以为文件夹选择各种各样的图标,系统默认的图标文件是%SystemRoot%\system32\SHELL32.dll,当然,如果你对这些图标还不满意的话,可以单击“浏览”按钮,自定义图标文件,其扩展名可以是.exe、.dll、.ico等。

从本质上说,这两种方法是相同的。在第二种方法中,系统同样会在目标文件夹中生成了一个desktop.ini文件,它们都是通过这个desktop.ini文件控制文件夹的图标变化的。

二、轻松搞定文件夹背景
当你打开一个文件夹时,映入眼帘的是一幅自己喜欢的背景图而不是Windows默认情况下的一片空白,这时你的心情绝对要好得多。那有没有办法来实现这个效果呢?当然有。

打开记事本,编辑如下内容:

[ExtShellFolderViews]

[{BE098140-A513-11D0-A3A4-00C04FD706EC}]

IconArea_Image=背景图片的路径(如C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Blue hills.jpg,图片最好是JPG或BMP格式的)

保存为Desktop.ini后退出。刷新一下,达到目的了吧。

当然,我们也可以将以上两个Desktop.ini文件合并(这样即可以收到DIY文件夹图标和背景之双重效果。相信大家看到这样的文件夹应该会轻松多了吧!

excel查找某列数据中某重复数据对应的其他列的值

2010年08月9日,星期一
热度:

一个通用的“查找某列数据中某重复数据对应的其他列的值”的自定义函数

Public Function getnames(fenshu As Range, k As Range, s As Integer)
Dim i As Integer
Dim ii As Range
Dim Smax As String
Smax = ”"
j = k.Column
For Each ii In k.Cells
i = ii.Row
If Cells(i, j).Value = fenshu Then
If Smax = ”" Then
Smax = Cells(i, s).Value
Else
Smax = Smax + ”、” + Cells(i, s).Value
End If
End If
Next
getnames = Smax
End Function

使用方法:
=getnames(D56,D3:D54,3)共三个参数:
D56是需要查找的分数所在单元格(这里是语文最高分)
D3:D54是被查找的数据区域(这里是语文分数列)
3 是需要返回数据所在的列,这里的3列表示返回“姓名”
如果给定的数据区域中(D3:D54)中含有多个被查找的数(D56),需要在相应列中(3)返回多个数值,那么这些数值将用“、”分隔

http://softbbs.pconline.com.cn/1715400_4.html

excel取最后一行、列号

2010年08月9日,星期一
热度:

取最后一行行号:i = Range(“A65536″).End(xlUp).Row

取最后一列列号:m = Range(“dz1″).End(xlToLeft).Column