PHP 中由于数组和字符串这两种变量类型是如此常用,以至于 PHP 具有两个函数,可以在字符串和数组之间互相进行转换。
  $array=explode(separator,$string);
  $string=implode(glue,$array);
  使用和理解这两个函数的关键之处是分隔符(separator)和胶合符(glue)关系。当把一个数组转换成一个字符串时,将会设置胶合符——将被插入到生成字符串中的数组值之间的字符或代码。相反,当把字符串转换成数组时,要指定分隔符,它用于标记什么应该变成独立数组元素。例如,以字符串开始:
  $s1=’Mon-Tue-Wed-Thu-Fri’;
  $days_array=explode(’-',$s1);
  $days_array 变量现在是一个有5个元素的数组,其元素 Mon 的索引为0,Tue 的索引为1,等等。
  $s2=implode(’,',$days_array);
  $s2 变量现在是一个用逗号分隔的一个星期中各天的列表:Mon,Tue,Wed,Thu,Fri

mssql批量替换整个数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
declare @Str1 varchar(8000)
SET @Str1='参数1'
declare @Str2 varchar(8000)
SET @Str2='参数2'
 
 
SET nocount ON
 
 
declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int
declare @sql nvarchar(500)
 
 
SET @iResult=0
declare cur cursor FOR
SELECT name,id FROM sysobjects WHERE xtype='U'
 
 
open cur
fetch next FROM cur INTO @tableName,@tbID
 
 
while @@fetch_status=0
begin
declare cur1 cursor FOR
        --xtype in (231,167,239,175,99) 为char,varchar,nchar,nvarchar,ntext类型
        SELECT name FROM syscolumns WHERE xtype IN (231,167,239,175,99) AND id=@tbID
open cur1
fetch next FROM cur1 INTO @columnName
while @@fetch_status=0
begin
      SET @sql='update [' + @tableName + '] set ['+ @columnName +']= replace(cast(['+@columnName+'] as varchar(8000)),'''+@Str1+''','''+@Str2+''') where ['+@columnName+'] like ''%'+@Str1+'%''' 
      --update tablename set fieldA=replace(cast(fieldA as varchar(8000)) ,'aa','bb')这样的语句。
      exec sp_executesql @sql     
      SET @iRow=@@rowcount
      SET @iResult=@iResult+@iRow
      IF @iRow>0
      begin
print '表:'+@tableName+',列:'+@columnName+'被更新'+convert(varchar(10),@iRow)+'条记录;'
      end     
      fetch next FROM cur1 INTO @columnName
 
 
 
end
close cur1
deallocate cur1
 
 
fetch next FROM cur INTO @tableName,@tbID
end
print '数据库共有'+convert(varchar(10),@iResult)+'条记录被更新!!!'
 
 
close cur
deallocate cur
SET nocount off

MSSQL bcp用法

通过SQL语句导出数据

1
2
bcp "select * from info..info where date between '2010-02-01' and
'2010-02-04'" queryout "d:\info.out" -SST0P-PC\SQLEXPRESS -Usa -P123456 -c

直接导出数据库表的数据

1
bcp 库名.dbo.表名 out d:\表名.dat -T -n

其中-S后的ST0P-PC\SQLEXPRESS是我本地的服务器名称
-U后的是用户名
-p后的是密码

输入bcp/?查看帮助

用法: bcp {dbtable | query} {in | out | queryout | format} 数据文件
[-m 最大错误数] [-f 格式化文件] [-e 错误文件]
[-F 首行] [-L 末行] [-b 批大小]
[-n 本机类型] [-c 字符类型] [-w 宽字符类型]
[-N 将非文本保持为本机类型] [-V 文件格式版本] [-q 带引号的标识符]
[-C 代码页说明符] [-t 字段终止符] [-r 行终止符]
[-i 输入文件] [-o 输出文件] [-a 数据包大小]
[-S 服务器名称] [-U 用户名] [-P 密码]
[-T 可信连接] [-v 版本] [-R 允许使用区域设置]
[-k 保留空值] [-E 保留标识值]
[-h"加载提示"] [-x 生成 xml 格式化文件]

来源:互联网
mysqldump是备份mysql数据库的一种好工具。它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系统下还可以结合计划任务实现定时远程备份数据库。

操作用mysqldump备份数据库的用户需要的权限比较小,只需要select和lock table的权限就足够了。所以可以创建一个备份数据库的用户,专门用于备份数据库,这样可以避免数据库受到意外的破坏。

在备份数据库之前我们要做足准备功夫,首先创建了执行备份操作的数据库用户——backup,密码为:123456。其次,确定我们要备份哪个数据库,放在哪里。然后,确定数据库的备份文件要放到哪里。

假设我们的任务是要备份一个位于192.168.1.2服务器上,名称为backup_test的数据库,并把备份文件放到D:\bak\的文件夹中。又假设我们的操作系统为windows xp,于是我们可以用以下的方法执行备份操作:

我们可以使用windows自带的命令提示符(调用命令提示符的方法有多种,最常用的就是点击开始菜单,选择“运行”,输入cmd的命令就可以启动了),在命令提示符中输入以下命令:

mysqldump -ubackup -p123456 -h 192.168.1.2 backup_test > D:\bak\bakcup.sql

在这段命令中:

mysqldump 是myqldump的程序名了;

-u 是数据库的用户名,后面紧跟着用户名backup;

-p 是数据库的密码,后面同样紧跟着密码,注意是-p和密码之间不能有空格;

-h 是数据库的地址,如果没有此项表明是备份本地的数据库;

backup_test 要备份的数据库名称;

> 表明该数据库备份到后面的文件,紧跟当然是备份文件的地址了,注意要用绝对文件路径,文件的后缀也可以用.txt。

一旦执行该命令后,mysqldump立即执行备份操作。远程备份数据库要似乎网络的情况,一般远程备份需要一定的时间的。

如果把这个命令写成批处理文件,通过windows的计划任务可以实现定时备份数据。

在windows下用mysqldump备份数据库,因为没有gzip的压缩引擎,因此不能对备份数据库进行压缩,因此如果备份文件多了要经常清理过期的数据库备份文件。

PHP编程的一种失误

嘎嘎,在群里看到xi4oyu发的一个后台的登陆验证部分,当登陆不成功是通过javascript来转向的,但他没有控制后面的输出是否停止,这就引起,当用户浏览器禁用JAVASCRIPT的时候,登陆验证失效,可以直接登陆。

1
2
3
4
5
6
7
8
9
10
11
12
<?php
include("functions.inc.php");
 
if(!logged_in()) {
	echo<<<EOD
	<script language="JavaScript">
	alert("登陆失败!");
	location.href="index.php";
	</script>
EOD;
}
?>

其中logged_in()应该是检测是否登陆的函数,不管结果是正确的还是错误的,只要调过去后面的JAVASCRIPT转向,这个都等于虚设。
在ASP中,我们碰到上面的问题,其实只需要在输出错误信息后,直接一个Response.End就搞定了。但PHP中没有,我们就可以在上面加一个Exit;即可

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include("functions.inc.php");
 
if(!logged_in()) {
	echo<<<EOD
	<script language="JavaScript">
	alert("登陆失败!");
	location.href="index.php";
	</script>
EOD;
Exit;
}
?>

  TinyURL是一个缩短网址的Web服务,可以把很长的网址变成简单的地址,通常创建TinyURL的方法是去其主页创建,有时候会有用户在客户端自动生成TinyURL的情况,这里介绍一个通过PHP调用TinyURL生成缩短地址的方法。

  TinyURL API的PHP函数如下

<?php
function TinyURL($u){
return file_get_contents('http://tinyurl.com/api-create.php?url='.$u);
}
?>

  调用的例子是

<?php
$url = 'http://www.williamlong.info/';
$tiny = TinyURL($url);
echo('The TinyURL of "'.$url.'" is "'.$tiny.'"');
die();
?>
转自:http://www.williamlong.info/archives/1797.html

金额大小写转化类

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication1
{
    /// 
    /// 类    名:  MoneyHelper
    /// 版 本 号:  V1.0
    /// 作    者:  张远强
    /// HomePage:  http://www.mzwu.com/
    /// 创建日期:  2009-05-12
    /// 功能描述:  金额大小写转化类
    /// 
    public sealed class MoneyHelper
    {
        /// 
        /// 转为小写金额
        /// 
        ///
大写金额
        /// 
        public static double ToLower(string money)
        {
            return ToLowerForInt(money) + ToLowerForDec(money);
        }
 
        /// 
        /// 转为小写金额(整数)
        /// 
        ///
大写金额
        /// 
        private static double ToLowerForInt(string money)
        {
            string[] units = new string[] { "亿", "万", "千", "百", "十", "元" };//金额单位数组
            int[] indexs = new int[] { 8, 4, 3, 2, 1, 0 };//金额单位对应位数,如亿位于第8位,百位于第2位,元位于第0位
            string[] items = new string[] { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };//十个基本数字(大写)
            double[] results = new double[indexs[0] + indexs[1] + 2];//保存结果,其长度为最大的两个单位位数之和+1
 <a href="http://www.lixiaopeng.org/category-into-the-amount-of-sensitive/#more-994" class="more-link">Read the rest of this entry</a>

ASP缓存类含调用演示

< %
'by xilou,www.chinacms.org,20090115
'最后更新:20090115
'修改记录:无

CONST CACHEPREFIX = "CACHE_" '缓存前缀,不能为空

'说明:
' 1,缓存的格式为Application(CACHEPREFIX & key) = array("缓存key","缓存时间","缓存内容","缓存说明","到期时间")
' 2,缓存key不区分大小写

'添加缓存,不检查缓存是否存在,如果存在则相当于更新缓存
'varAry : 参数,格式为:array("缓存key","缓存时间","缓存内容","缓存说明")
' 缓存key :application()格式相同
' 缓存时间:单位秒,可以为负数,表示立即过期,可以为空,空或不是数字则默认为20分钟过期
' 缓存内容:缓存数据,不支持对对象的缓存
' 缓存说明:缓存描述说明
Function AddCache(varAry)
Dim c,ary(4)
If Not IsArray(varAry) Then
Response.Write "Error:AddCache(varAry)参数错误,参数不是数组"
Response.End()
End If
If UBound(varAry) <> 3 Then
Response.Write "Error:AddCache(varAry)参数错误,数组长度错误"
Response.End()
End If
If varAry(0) = "" Then
Response.Write "Error:AddCache(varAry)错误,key不能为空"
Response.End()
End If
If varAry(1) = "" or Not IsNumeric(varAry(1)) Then varAry(1) = 1200
Application.Lock()
Application(CACHEPREFIX & varAry(0)) = array(varAry(0),varAry(1),varAry(2),varAry(3),DateAdd("s",varAry(1),Now()))
Application.UnLock()
End Function
Read the rest of this entry

ASP 事件类 eventProvider

asp事件类,功能说明:
1,showInfo(e_title,c_url,e_num,e_des,e_time,opera,ip,reurl):显示错误信息
2,getIP():取得客户IP
3,checkPost():验证是否是站外提交
4,getReferer():来路记录
5,getCurURL():取得当前页面路径
6,isRefresh(s1,s2,maxtimes):防刷新 Read the rest of this entry

ASP 通用函数库

< %
    '******************************
    '类名:
    '名称:通用库
    '日期:2008/10/28
    '作者:by xilou
    '网址:http://www.chinacms.org
    '描述:通用库
    '版权:转载请注名出处,作者
    '******************************
    '最后修改:20090108
    '修改次数:2
    '修改说明:
    '20090108 增加下列函数:
    '    A2U(),U2A(),UrlEncode(),UrlDecode(),GBToUTF8(),Bytes2Str(),Str2Bytes()
    '20090108 增加下列函数:
    '    AryToVbsString(arr)
    '目前版本:
    '******************************/
 
    '输出
    Sub Echo(str)
        Response.Write str
    End Sub
 
    '断点
    Sub Halt()
        Response.End()
    End Sub
 
    '输出并换行
    Sub Br(str)
        Echo str & "<br />" & vbcrlf
    End Sub
 
    '简化Request.Form()
    'f : 表单名称
    Function P(f)
        P = Replace(Request.Form(f), Chr(0), "")
    End Function
 
    '接收表单并替换单引号
    Function Pr(f)
        Pr = Replace(Request.Form(f), Chr(0), "")
        Pr = Replace(Pr, "'", "''")
    End Function
 
    '简化Request.Querystring()
    'f : 表单名称
    Function G(f)
        G = Replace(Request.QueryString(f), Chr(0), "")
    End Function
 <a href="http://www.lixiaopeng.org/asp-general-library/#more-967" class="more-link">Read the rest of this entry</a>