Monday, August 30, 2010

Windows+Apache2.2.14+PHP5.3.1+MySQL5.1.41+phpMyAdm

学习PHP这么久了,昨天发现WAMP已经更新了好几个版本了,我的版本已经很旧了,当然版本并不重要,为
了复习一下WAMP的配置方法,我在虚拟机中手动和自动配置了下,都是下载最新的推荐版本,原来并没想到
发到坛子来,所以并没有截图,后来总结到记事本的时候发现还是有蛮多问题的,所以就共享出来,希望对大家
有所帮助。在做实验的时候,我也参考了坛子里其他的前辈写的教程,在此多谢了。步骤写得比较简略,但重要
的东西基本都写出来了,有不明白的可以借助搜索引擎,如果我在线,我也会尽力解答的。


安装过程如下:

①手动安装:
(1)按提示安装Apache 2.2.14,有两种版本(具体有什么区别网上有答案),都行的,安装在C:\WAMP\Apache2.2.14。

(2)解压php-5.3.1-Win32-VC6-x86.zip(选择VC6,Thread Safe版本)到C:\WAMP\PHP5.3.1中。

(3)打开httpd.conf,添加以下三行:
       LoadModule php5_module C:/WAMP/PHP5.3.1/php5apache2_2.dll
       PHPIniDir "C:/WAMP/PHP5.3.1"
       AddType application/x-httpd-php .php .phtml
    
       找到
             <IfModule dir_module>
                    DirectoryIndex index.html
             </IfModule>

       改为:
            <IfModule dir_module>
                    DirectoryIndex index.html index.php
            </IfModule>


(4)设置环境变量C:\WAMP\PHP5.3.1;C:\WAMP\PHP5.3.1\ext;
       还可以把C:\WAMP\Apache2.2.14\bin也添加进去,这样如果Apache出错就可以
       直接在命令控制台中打命令调试。

(5)修改php.ini:
       找到extension_dir,设置为extension_dir = "C:/WAMP/PHP5.3.1/ext"
       找到以下extension:
       ;extension=php_gd2.dll
       ;extension=php_mbstring.dll
       ;extension=php_mysql.dll
       ;extension=php_mysqli.dll

      去掉之前的分号。这个根据需要去掉前面的分号。

(6)重启Apache,写个有PHP语句的php网页测试。

(7)解压mysql-noinstall-5.1.41-win32.zip到C:\WAMP\MySQL5.1.41中

(8)把my-large.ini改名为my.ini,找到[mysqld]添加如下语句:
      #set default language
      default-character-set=gbk
      #set basedir to your installation path
      basedir=C:/WAMP/MySQL5.1.41
      #set datadir to the location of your data directory
      datadir=C:/WAMP/MySQL5.1.41/data
(9)先设置环境变量:C:\WAMP\MySQL5.1.41\bin,然后打开命令窗口,输入:
       mysqld --install MySQL --defaults-file=C:\WAMP\MySQL5.1.41\my.ini
       安装完成后在命令窗口输入:mysql -u root
       设置root帐户密码:set password for 'root'@'localhost' = password('123456');
       这样之后就可以使用mysql了,重启Apache,写个php网页测试。

(10)根据提示安装ZendOptimizer-3.3.0a-Windows-i386.exe。

(11)解压phpMyAdmin-3.2.4到C:\WAMP\Apache\htdocs\phpMyAdmin中。

(12)打开文件config.sample.inc.php,寻找到代码行:
        // $cfg['Servers'][$i]['controluser'] = 'pma';
        // $cfg['Servers'][$i]['controlpass'] = 'pmapass';

       改为:
       $cfg['Servers'][$i]['controluser'] = 'root';
        $cfg['Servers'][$i]['controlpass'] = '123456';
       注意:如果需要通过远程服务器调试使用phpMyAdmin,不能让blowfish_secret内容为空。
       可以随便设置一个字符串。

(13)以config.inc.php保存在同一目录下,现在可以在浏览器中使用phpMyAdmin了。
至此,手动安装完毕。

************************************************************************************
#####################################################################
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


②自动安装:
(1)按提示安装Apache 2.2.14,有两种版本(具体有什么区别网上有答案),都行的,安装在C:\WAMP\Apache2.2.14。

(2)运行php-5.3.1-Win32-VC6-x86.msi(选择VC6,Thread Safe版本),安装在C:\WAMP\PHP5.3.1中。

(3)安装完后在网上找到ntwdblib.dll这个文件,放在C:\WAMP\PHP5.3.1目录中(不推荐这种做法)。
       或者打开php.ini,注释掉下面的一句(就是在前面加个分号,如果已经被注释了那更好):
       extension=php_mssql.dll
       然后重启Apache,这时应该就可以了(如果直接重启Apache,有可能出错)。
       写个php网页测试下。

(4)运行mysql-5.1.41-win32.msi,安装在C:\WAMP\MySQL5.1.41中。

(5)重启Apache,新建一个php网页,连接一下MySQL以验证是否安装成功。

(6)解压phpMyAdmin-3.2.4到C:\WAMP\Apache\htdocs\phpMyAdmin中。

(7)打开文件config.sample.inc.php,寻找到代码行:
        // $cfg['Servers'][$i]['controluser'] = 'pma';
        // $cfg['Servers'][$i]['controlpass'] = 'pmapass';

       改为:
       $cfg['Servers'][$i]['controluser'] = 'root';
        $cfg['Servers'][$i]['controlpass'] = '123456';
       注意:如果需要通过远程服务器调试使用phpMyAdmin,不能让blowfish_secret内容为空。
       可以随便设置一个字符串,最好是设置一个字符串。


(8)以config.inc.php保存在同一目录下,现在可以在浏览器中使用phpMyAdmin了。
       至此,自动安装完毕。

转自:http://bbs.phpchina.com/viewthread.php?tid=170073&highlight=phpmyadmin

Thursday, August 26, 2010

设置上传文件类型

if (FileUp.PostedFile.ContentType == "image/pjpeg" || FileUp.PostedFile.ContentType == "image/gif" || FileUp.PostedFile.ContentType == "image/bmp") //设置上传文件类型

加上
FileUp.PostedFile.ContentType=="application/x-shockwave-flash"
----------------------
备注其它类型的ContentType

".*"="application/octet-stream"
".001"="application/x-001"
".301"="application/x-301"
".323"="text/h323"
".906"="application/x-906"
".907"="drawing/907"
".a11"="application/x-a11"
".acp"="audio/x-mei-aac"
".ai"="application/postscript"
".aif"="audio/aiff"
".aifc"="audio/aiff"
".aiff"="audio/aiff"
".anv"="application/x-anv"
".asa"="text/asa"
".asf"="video/x-ms-asf"
".asp"="text/asp"
".asx"="video/x-ms-asf"
".au"="audio/basic"
".avi"="video/avi"
".awf"="application/vnd.adobe.workflow"
".biz"="text/xml"
".bmp"="application/x-bmp"
".bot"="application/x-bot"
".c4t"="application/x-c4t"
".c90"="application/x-c90"
".cal"="application/x-cals"
".cat"="application/vnd.ms-pki.seccat"
".cdf"="application/x-netcdf"
".cdr"="application/x-cdr"
".cel"="application/x-cel"
".cer"="application/x-x509-ca-cert"
".cg4"="application/x-g4"
".cgm"="application/x-cgm"
".cit"="application/x-cit"
".class"="java/*"
".cml"="text/xml"
".cmp"="application/x-cmp"
".cmx"="application/x-cmx"
".cot"="application/x-cot"
".crl"="application/pkix-crl"
".crt"="application/x-x509-ca-cert"
".csi"="application/x-csi"
".css"="text/css"
".cut"="application/x-cut"
".dbf"="application/x-dbf"
".dbm"="application/x-dbm"
".dbx"="application/x-dbx"
".dcd"="text/xml"
".dcx"="application/x-dcx"
".der"="application/x-x509-ca-cert"
".dgn"="application/x-dgn"
".dib"="application/x-dib"
".dll"="application/x-msdownload"
".doc"="application/msword"
".dot"="application/msword"
".drw"="application/x-drw"
".dtd"="text/xml"
".dwf"="Model/vnd.dwf"
".dwf"="application/x-dwf"
".dwg"="application/x-dwg"
".dxb"="application/x-dxb"
".dxf"="application/x-dxf"
".edn"="application/vnd.adobe.edn"
".emf"="application/x-emf"
".eml"="message/rfc822"
".ent"="text/xml"
".epi"="application/x-epi"
".eps"="application/x-ps"
".eps"="application/postscript"
".etd"="application/x-ebx"
".exe"="application/x-msdownload"
".fax"="image/fax"
".fdf"="application/vnd.fdf"
".fif"="application/fractals"
".fo"="text/xml"
".frm"="application/x-frm"
".g4"="application/x-g4"
".gbr"="application/x-gbr"
".gcd"="application/x-gcd"
".gif"="image/gif"
".gl2"="application/x-gl2"
".gp4"="application/x-gp4"
".hgl"="application/x-hgl"
".hmr"="application/x-hmr"
".hpg"="application/x-hpgl"
".hpl"="application/x-hpl"
".hqx"="application/mac-binhex40"
".hrf"="application/x-hrf"
".hta"="application/hta"
".htc"="text/x-component"
".htm"="text/html"
".html"="text/html"
".htt"="text/webviewhtml"
".htx"="text/html"
".icb"="application/x-icb"
".ico"="image/x-icon"
".ico"="application/x-ico"
".iff"="application/x-iff"
".ig4"="application/x-g4"
".igs"="application/x-igs"
".iii"="application/x-iphone"
".img"="application/x-img"
".ins"="application/x-internet-signup"
".isp"="application/x-internet-signup"
".IVF"="video/x-ivf"
".java"="java/*"
".jfif"="image/jpeg"
".jpe"="image/jpeg"
".jpe"="application/x-jpe"
".jpeg"="image/jpeg"
".jpg"="image/jpeg"
".jpg"="application/x-jpg"
".js"="application/x-javascript"
".jsp"="text/html"
".la1"="audio/x-liquid-file"
".lar"="application/x-laplayer-reg"
".latex"="application/x-latex"
".lavs"="audio/x-liquid-secure"
".lbm"="application/x-lbm"
".lmsff"="audio/x-la-lms"
".ls"="application/x-javascript"
".ltr"="application/x-ltr"
".m1v"="video/x-mpeg"
".m2v"="video/x-mpeg"
".m3u"="audio/mpegurl"
".m4e"="video/mpeg4"
".mac"="application/x-mac"
".man"="application/x-troff-man"
".math"="text/xml"
".mdb"="application/msaccess"
".mdb"="application/x-mdb"
".mfp"="application/x-shockwave-flash"
".mht"="message/rfc822"
".mhtml"="message/rfc822"
".mi"="application/x-mi"
".mid"="audio/mid"
".midi"="audio/mid"
".mil"="application/x-mil"
".mml"="text/xml"
".mnd"="audio/x-musicnet-download"
".mns"="audio/x-musicnet-stream"
".mocha"="application/x-javascript"
".movie"="video/x-sgi-movie"
".mp1"="audio/mp1"
".mp2"="audio/mp2"
".mp2v"="video/mpeg"
".mp3"="audio/mp3"
".mp4"="video/mpeg4"
".mpa"="video/x-mpg"
".mpd"="application/vnd.ms-project"
".mpe"="video/x-mpeg"
".mpeg"="video/mpg"
".mpg"="video/mpg"
".mpga"="audio/rn-mpeg"
".mpp"="application/vnd.ms-project"
".mps"="video/x-mpeg"
".mpt"="application/vnd.ms-project"
".mpv"="video/mpg"
".mpv2"="video/mpeg"
".mpw"="application/vnd.ms-project"
".mpx"="application/vnd.ms-project"
".mtx"="text/xml"
".mxp"="application/x-mmxp"
".net"="image/pnetvue"
".nrf"="application/x-nrf"
".nws"="message/rfc822"
".odc"="text/x-ms-odc"
".out"="application/x-out"
".p10"="application/pkcs10"
".p12"="application/x-pkcs12"
".p7b"="application/x-pkcs7-certificates"
".p7c"="application/pkcs7-mime"
".p7m"="application/pkcs7-mime"
".p7r"="application/x-pkcs7-certreqresp"
".p7s"="application/pkcs7-signature"
".pc5"="application/x-pc5"
".pci"="application/x-pci"
".pcl"="application/x-pcl"
".pcx"="application/x-pcx"
".pdf"="application/pdf"
".pdf"="application/pdf"
".pdx"="application/vnd.adobe.pdx"
".pfx"="application/x-pkcs12"
".pgl"="application/x-pgl"
".pic"="application/x-pic"
".pko"="application/vnd.ms-pki.pko"
".pl"="application/x-perl"
".plg"="text/html"
".pls"="audio/scpls"
".plt"="application/x-plt"
".png"="image/png"
".png"="application/x-png"
".pot"="application/vnd.ms-powerpoint"
".ppa"="application/vnd.ms-powerpoint"
".ppm"="application/x-ppm"
".pps"="application/vnd.ms-powerpoint"
".ppt"="application/vnd.ms-powerpoint"
".ppt"="application/x-ppt"
".pr"="application/x-pr"
".prf"="application/pics-rules"
".prn"="application/x-prn"
".prt"="application/x-prt"
".ps"="application/x-ps"
".ps"="application/postscript"
".ptn"="application/x-ptn"
".pwz"="application/vnd.ms-powerpoint"
".r3t"="text/vnd.rn-realtext3d"
".ra"="audio/vnd.rn-realaudio"
".ram"="audio/x-pn-realaudio"
".ras"="application/x-ras"
".rat"="application/rat-file"
".rdf"="text/xml"
".rec"="application/vnd.rn-recording"
".red"="application/x-red"
".rgb"="application/x-rgb"
".rjs"="application/vnd.rn-realsystem-rjs"
".rjt"="application/vnd.rn-realsystem-rjt"
".rlc"="application/x-rlc"
".rle"="application/x-rle"
".rm"="application/vnd.rn-realmedia"
".rmf"="application/vnd.adobe.rmf"
".rmi"="audio/mid"
".rmj"="application/vnd.rn-realsystem-rmj"
".rmm"="audio/x-pn-realaudio"
".rmp"="application/vnd.rn-rn_music_package"
".rms"="application/vnd.rn-realmedia-secure"
".rmvb"="application/vnd.rn-realmedia-vbr"
".rmx"="application/vnd.rn-realsystem-rmx"
".rnx"="application/vnd.rn-realplayer"
".rp"="image/vnd.rn-realpix"
".rpm"="audio/x-pn-realaudio-plugin"
".rsml"="application/vnd.rn-rsml"
".rt"="text/vnd.rn-realtext"
".rtf"="application/msword"
".rtf"="application/x-rtf"
".rv"="video/vnd.rn-realvideo"
".sam"="application/x-sam"
".sat"="application/x-sat"
".sdp"="application/sdp"
".sdw"="application/x-sdw"
".sit"="application/x-stuffit"
".slb"="application/x-slb"
".sld"="application/x-sld"
".slk"="drawing/x-slk"
".smi"="application/smil"
".smil"="application/smil"
".smk"="application/x-smk"
".snd"="audio/basic"
".sol"="text/plain"
".sor"="text/plain"
".spc"="application/x-pkcs7-certificates"
".spl"="application/futuresplash"
".spp"="text/xml"
".ssm"="application/streamingmedia"
".sst"="application/vnd.ms-pki.certstore"
".stl"="application/vnd.ms-pki.stl"
".stm"="text/html"
".sty"="application/x-sty"
".svg"="text/xml"
".swf"="application/x-shockwave-flash"
".tdf"="application/x-tdf"
".tg4"="application/x-tg4"
".tga"="application/x-tga"
".tif"="image/tiff"
".tif"="application/x-tif"
".tiff"="image/tiff"
".tld"="text/xml"
".top"="drawing/x-top"
".torrent"="application/x-bittorrent"
".tsd"="text/xml"
".txt"="text/plain"
".uin"="application/x-icq"
".uls"="text/iuls"
".vcf"="text/x-vcard"
".vda"="application/x-vda"
".vdx"="application/vnd.visio"
".vml"="text/xml"
".vpg"="application/x-vpeg005"
".vsd"="application/vnd.visio"
".vsd"="application/x-vsd"
".vss"="application/vnd.visio"
".vst"="application/vnd.visio"
".vst"="application/x-vst"
".vsw"="application/vnd.visio"
".vsx"="application/vnd.visio"
".vtx"="application/vnd.visio"
".vxml"="text/xml"
".wav"="audio/wav"
".wax"="audio/x-ms-wax"
".wb1"="application/x-wb1"
".wb2"="application/x-wb2"
".wb3"="application/x-wb3"
".wbmp"="image/vnd.wap.wbmp"
".wiz"="application/msword"
".wk3"="application/x-wk3"
".wk4"="application/x-wk4"
".wkq"="application/x-wkq"
".wks"="application/x-wks"
".wm"="video/x-ms-wm"
".wma"="audio/x-ms-wma"
".wmd"="application/x-ms-wmd"
".wmf"="application/x-wmf"
".wml"="text/vnd.wap.wml"
".wmv"="video/x-ms-wmv"
".wmx"="video/x-ms-wmx"
".wmz"="application/x-ms-wmz"
".wp6"="application/x-wp6"
".wpd"="application/x-wpd"
".wpg"="application/x-wpg"
".wpl"="application/vnd.ms-wpl"
".wq1"="application/x-wq1"
".wr1"="application/x-wr1"
".wri"="application/x-wri"
".wrk"="application/x-wrk"
".ws"="application/x-ws"
".ws2"="application/x-ws"
".wsc"="text/scriptlet"
".wsdl"="text/xml"
".wvx"="video/x-ms-wvx"
".xdp"="application/vnd.adobe.xdp"
".xdr"="text/xml"
".xfd"="application/vnd.adobe.xfd"
".xfdf"="application/vnd.adobe.xfdf"
".xhtml"="text/html"
".xls"="application/vnd.ms-excel"
".xls"="application/x-xls"
".xlw"="application/x-xlw"
".xml"="text/xml"
".xpl"="audio/scpls"
".xq"="text/xml"
".xql"="text/xml"
".xquery"="text/xml"
".xsd"="text/xml"
".xsl"="text/xml"
".xslt"="text/xml"
".xwd"="application/x-xwd"
".x_b"="application/x-x_b"
".x_t"="application/x-x_t"


FileUpload 的代码
protected void upload_Click(object sender, EventArgs e)
{
if (FileUp.PostedFile.ContentLength != 0)
{

if (FileUp.PostedFile.ContentType == "image/pjpeg" || FileUp.PostedFile.ContentType == "image/gif" || FileUp.PostedFile.ContentType == "image/bmp") //设置上传文件类型
{
string filename = FileUp.PostedFile.FileName; //取得文件名
int i = filename.Length;
filename = filename.Remove(0, i - 4);
string s = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
string d = Server.MapPath("../img/") + s + filename; //设置文件名
FileUp.PostedFile.SaveAs(d); //保存文件
txtImgUrl.Text = "../img/" + s + filename;
lbUpMsg.Text = "上传成功!";
}

else lbUpMsg.Text = "上传失败!只能上传图形文件!";
//Response.Write("<script language='javascript'>alert('只能上传图形文件');window.history.back();<" + "/script>");

}
else lbUpMsg.Text = "请选择上传文件!";
}


转自:http://blog.csdn.net/cneee/archive/2009/03/20/4007272.aspx

Wednesday, August 25, 2010

PHP数组实例说明

今天突然碰到了php的问题,发现这篇文章,很老的文章了,但很实用,下一篇我将整理更新的php5的数组


PHP4.0中共有超过30个新的数组相关函数。其中很多通用函数允许你检查给定数组中是否存在特定对象、对数组元素计数、增加或删除元素,或对元素排序。


 如果你有很大的一个数组,而所要完成的仅是找出一个存在的给定值,你可以使用in_array()以返回true 或 false。如下代码将输出“Not found in this array”——因为你将在$namesArray中寻找一个并不存在的“Alber ”。


<?
$namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$lookingFor = "Albert";
if (in_array($lookingFor, $namesArray)) {
echo "You've found it!";
} else {
echo "Not found in this array!";
}
?>
如果你改变了$lookingFor的值,将其变为“Mary”,你将得到消息“You've found it!”——因为“Mary”是$namesArray的一部分。



如果希望对数组元素计数,你可以使用count()函数:


<?
$namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$count = count($namesArray); ?>
$count值将为7。
你可以对任何数组添加元素,无论是在已存在数组的开始或末尾。你也可以使用函数以创建一个包含两个或多个数组元素的新数组。合并时每个数组将按需要的顺序排列。如果你的数组已经有内部的排序,你需要对新的合并数组重排序。





让我们从对已存在数组的末尾增添元素开始,使用函数array_push():


<?

$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");

array_push($fruitArray, "grape", "pineapple", "tomato");

while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
这将显示:
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : grape
6 : pineapple
7 : tomato





当你需要对数组开头添加元素时,代码非常类似。不同处只是函数名:array_unshift() 而不是array_push()。


<?

$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");

array_unshift($fruitArray, "grape", "pineapple", "tomato");

while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
这将显示:
0 : grape
1 : pineapple
2 : tomato
3 : apple
4 : orange
5 : banana
6 : kiwi
7 : pear





函数array_merge()合并两个或更多的数组。


<?

$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
<?
$vegArray = array("carrot", "green beans", "asparagus", "artichoke", "corn");

$goodfoodArray = array_merge($fruitArray, $vegArray);

while (list($key,$value) = each($goodfoodArray)) {
echo "$key : $value<br>";
}
?>
这将显示:
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : carrot
6 : green beans
7 : asparagus
8 : artichoke
9 : corn
现 在已经对数组进行了增加元素和合并,现在来练习删除元素函数。你可以使用函数array_pop()从一数组末尾删除一个元素。如果使用函数 array_shift(),则从一数组开头删除一个元素。而实际上当你从数组删除元素时,此元素对你而言仍然可用——当你从已存在的数组中对元素进行 pop 或 shift时。




使用array_pop()函数从数组末尾删除一个值:


<?

$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");

$popped = array_pop($fruitArray);

while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
echo "<br>and finally, in $popped: $popped";
?>
这将显示:
0 : apple
1 : orange
2 : banana
3 : kiwi
and finally, in $popped: pear
Next, delete an element from the end of an array: ???????????




下面,从数组末尾删除某值:


<?

$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");

$shifted = array_shift($fruitArray);

while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
echo "<br>and finally, in $shifted: $shifted";
?>
这将显示:
0 : orange
1 : banana
2 : kiwi
3 : pear
and finally, in $shifted: apple




有很多函数可以帮助你对数组元素排序。但我将会演示基本的排序以帮助你了解其过程:


<?

$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");

sort($fruitArray);


while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>
这将显示:
0 : apple
1 : banana
2 : kiwi
3 : orange
4 : pear

Tuesday, August 24, 2010

PHPEXCEL使用实例

最近在项目中要用到PHP生成EXCEL,上网找了一下,发现PHPEXCEL挺不错,用了一下,感觉还行,就是设置单元格格式的时候比较麻烦,总体来说功能还是比较强大的,还有生成PDF什么的,发一个实例吧

<?php  

require_once 'PHPExcel.php';  
require_once 'PHPExcel/Writer/Excel5.php';
require_once("..\include\mysqlconn.php");
$sdate=$_POST["sdate"];//接受传递过来的生成时间段
$edate=$_POST["edate"];
//$sdate='2009-01-01';
//$edate='2009-04-01';
$cancel_time=date("YmdHis");

$data=new MysqlConn();
$data->connect();
$sql="select * from employee_addminus where (oper_time between '$sdate' and '$edate') and isCanceled=0";
 
// 创建一个处理对象实例  
$objExcel = new PHPExcel();  
 
// 创建文件格式写入对象实例, uncomment  
$objWriter = new PHPExcel_Writer_Excel5($objExcel); 

//设置文档基本属性  
$objProps = $objExcel->getProperties();  
$objProps->setCreator("章贡区医疗保险局");  
$objProps->setLastModifiedBy("章贡区医疗保险局");  
$objProps->setTitle("章贡区医疗保险局职工月增减变动报表");  
$objProps->setSubject("章贡区医疗保险局职工月增减变动报表");  
$objProps->setDescription("章贡区医疗保险局职工月增减变动报表");  
$objProps->setKeywords("章贡区医疗保险局职工月增减变动报表");  
$objProps->setCategory("变动报表");  
 
//*************************************  
//设置当前的sheet索引,用于后续的内容操作。  
//一般只有在使用多个sheet的时候才需要显示调用。  
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0  
$objExcel->setActiveSheetIndex(0);  
$objActSheet = $objExcel->getActiveSheet();  
 
//设置当前活动sheet的名称  
$objActSheet->setTitle('月增减变动报表');  
 
//*************************************  
//  
//设置宽度,这个值和EXCEL里的不同,不知道是什么单位,略小于EXCEL中的宽度
$objActSheet->getColumnDimension('A')->setWidth(20);
$objActSheet->getColumnDimension('B')->setWidth(10);
$objActSheet->getColumnDimension('C')->setWidth(6);
$objActSheet->getColumnDimension('D')->setWidth(20);
$objActSheet->getColumnDimension('E')->setWidth(12);
$objActSheet->getColumnDimension('F')->setWidth(10);
$objActSheet->getColumnDimension('G')->setWidth(20);
$objActSheet->getColumnDimension('H')->setWidth(18);
$objActSheet->getColumnDimension('I')->setWidth(12);
$objActSheet->getColumnDimension('J')->setWidth(8);
$objActSheet->getColumnDimension('K')->setWidth(8);
$objActSheet->getColumnDimension('L')->setWidth(12);
$objActSheet->getColumnDimension('M')->setWidth(10);
$objActSheet->getColumnDimension('N')->setWidth(10);

$objActSheet->getRowDimension(1)->setRowHeight(30);
$objActSheet->getRowDimension(2)->setRowHeight(27);
$objActSheet->getRowDimension(3)->setRowHeight(16);

//设置单元格的值
$objActSheet->setCellValue('A1', '章贡区医疗保险局职工月增减变动报表');
//合并单元格
$objActSheet->mergeCells('A1:N1');
//设置样式
$objStyleA1 = $objActSheet->getStyle('A1');  
$objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objFontA1 = $objStyleA1->getFont();  
$objFontA1->setName('宋体');  
$objFontA1->setSize(18);
$objFontA1->setBold(true);  

//设置居中对齐
$objActSheet->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('B2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('C2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('D2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('E2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('F2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('G2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('H2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('I2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('J2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('K2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('L2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('M2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet->getStyle('N2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objActSheet->setCellValue('A2', '现所在单位');
$objActSheet->setCellValue('B2', '姓名');
$objActSheet->setCellValue('C2', '性别');
$objActSheet->setCellValue('D2', '身份证号码');
$objActSheet->setCellValue('E2', '参保时间');
$objActSheet->setCellValue('F2', '增减原因');
$objActSheet->setCellValue('G2', '原所在单位');
$objActSheet->setCellValue('H2', '增减时间');
$objActSheet->setCellValue('I2', '退休时间');
$objActSheet->setCellValue('J2', '原工资');
$objActSheet->setCellValue('K2', '现工资');
$objActSheet->setCellValue('L2', '定点医院');
$objActSheet->setCellValue('M2', '操作人');
$objActSheet->setCellValue('N2', '备注');

//设置边框
$objActSheet->getStyle('A2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('A2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('A2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('A2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('C2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('C2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('C2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('C2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('D2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('D2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('D2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('D2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('E2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('E2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('E2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('E2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('F2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('F2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('F2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('F2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
            $objActSheet->getStyle('G2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('G2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('G2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('G2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
            $objActSheet->getStyle('H2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('H2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('H2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('H2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('I2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('I2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('I2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('I2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('J2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('J2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('J2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('J2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('K2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('K2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('K2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('K2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('L2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('L2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('L2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('L2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('M2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('M2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('M2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('M2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
            $objActSheet->getStyle('N2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('N2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('N2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('N2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );

$query=$data->query($sql);
$i=1;
//从数据库取值循环输出
while($result=mysql_fetch_row($query)){
$personName=$result[1];
$idcard=$result[2];
$old_company=$result[3];
$new_company=$result[4];
$sex=$result[5];
$start_time=$result[6];
$reason=$result[7];
$retire_time=$result[8];
$old_wages=$result[9];
$new_wages=$result[10];
$hospital=$result[11];
$remarks=$result[12];
$operator=$result[13];
$oper_time=$result[14];

    $n=$i+2;
  
    $objActSheet->getStyle('B'.$n)->getNumberFormat()->setFormatCode('@');
    $objActSheet->getStyle('E'.$n)->getNumberFormat()->setFormatCode('@');
  
    $objActSheet->getRowDimension($n)->setRowHeight(16);
  
    $objActSheet->getStyle('A'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('A'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('A'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('A'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('B'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('C'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('C'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('C'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('C'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('D'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('D'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('D'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('D'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('E'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('E'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('E'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('E'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('F'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('F'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('F'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('F'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
            $objActSheet->getStyle('G'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('G'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('G'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('G'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
            $objActSheet->getStyle('H'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('H'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('H'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('H'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('I'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('I'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('I'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('I'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('J'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('J'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('J'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('J'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('K'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('K'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('K'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('K'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('L'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('L'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('L'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('L'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
            $objActSheet->getStyle('M'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('M'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('M'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('M'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
            $objActSheet->getStyle('N'.$n)->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('N'.$n)->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('N'.$n)->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    $objActSheet->getStyle('N'.$n)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
  
    $xb="男";
    if($sex==1){
        $xb="女";
    }
  
    $objActSheet->setCellValue('A'.$n, $new_company);
    $objActSheet->setCellValue('B'.$n, $personName);
    $objActSheet->setCellValue('C'.$n, $xb);
    $objActSheet->setCellValue('D'.$n, ' '.$idcard.' ');
    $objActSheet->setCellValue('E'.$n, $start_time);
    $objActSheet->setCellValue('F'.$n, $reason);
    $objActSheet->setCellValue('G'.$n, $old_company);
    $objActSheet->setCellValue('H'.$n, $oper_time);
    $objActSheet->setCellValue('I'.$n, $retire_time);
    $objActSheet->setCellValue('J'.$n, $old_wages);
    $objActSheet->setCellValue('K'.$n, $new_wages);
    $objActSheet->setCellValue('L'.$n, $hospital);
    $objActSheet->setCellValue('M'.$n, $operator);
    $objActSheet->setCellValue('N'.$n, $remarks);
    $i++;
}


//*************************************  
//输出内容  
//  

$outputFileName = "tables/".$cancel_time."addminus.xls";  
//到文件  
$objWriter->save($outputFileName);  
//下面这个输出我是有个页面用Ajax接收返回的信息
echo("<a href="tables/".$cancel_time."addminus.xls" mce_href="tables/".$cancel_time."addminus.xls" target='_blank'>点击下载电子表</a>");

?>  


转自:http://blog.csdn.net/wlwqw/archive/2009/04/23/4103994.aspx
还可参考 : http://www.zeali.net/entry/556
            phpexcel使用手册及phpexcel常用函数

php+ajax 注册验证用户名是否存在实例 1

register.php

<?php
mysql_connect('localhost','root','');
mysql_select_db('xin');
$strSql = mysql_query("select username from message where username ='".$_POST["username"]."'");
$line = mysql_fetch_array($strSql,MYSQL_ASSOC);

if($line["username"]){
echo "1";
exit;
}else{
echo "0";
exit;
}
?>

==============================================================
register.html

我晕,怎么代码粘不上来。。。

Monday, August 23, 2010

JavaScript验证函数大全

附加:js验证radio是否选择

<script language="javascript">
function checkform(obj)
{
for(i=0;i<obj.oo.length;i++)
          if(obj.oo[i].checked==true) return true;

alert("请选择")
return false;       

}
</script>
<form id="form1" name="form1" method="post" action=""    onsubmit="return checkform(this)">
    <input type="radio" name="oo" value="radiobutton" />
    <input type="radio" name="oo" value="radiobutton" />
    <input type="submit" name="Submit" value="提交" />
</form>

1. 长度限制
<script>
function test()
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>

2. 只能是汉字
<input onkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">

3." 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>

<input onkeydown="onlyEng();">

4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>

<input onkeydown="onlyNum();">

5. 只能是英文字符和数字
<input onkeyup="value="/oblog/value.replace(/[\W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

6. 验证油箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert("123");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

8. 两次输入密码是否相同
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();
}
}
</script>

屏蔽右键 很酷
oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
加在body中




2.1      表单项不能为空

<script      language="javascript">
<!--
function      CheckForm()

if      (document.form.name.value.length      ==      0)      { 
alert("请输入您姓名!");
document.form.name.focus();
return      false;
}
return      true;
}
-->
</script>

2.2      比较两个表单项的值是否相同

<script      language="javascript">
<!--
function      CheckForm()
if      (document.form.PWD.value      !=      document.form.PWD_Again.value)      { 
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return      false;
}
return      true;
}
-->
</script>

2.3      表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script      language="javascript">
<!--
function      isNumber(String)

var      Letters      =      "1234567890-";      //可以自己增加可输入值
var      i;
var      c;
if(String.charAt(      0      )=='-')
return      false;
if(      String.charAt(      String.length      -      1      )      ==      '-'      )
return      false;
for(      i      =      0;      i      <      String.length;      i      ++      )

c      =      String.charAt(      i      );
if      (Letters.indexOf(      c      )      <      0)
return      false;
}
return      true;
}
function      CheckForm()

if(!      isNumber(document.form.TEL.value))      { 
alert("您的电话号码不合法!");
document.form.TEL.focus();
return      false;
}
return      true;
}
-->
</script>


2.4      表单项输入数值/长度限定

<script      language="javascript">
<!--
function      CheckForm() 

if      (document.form.count.value      >      100      ||      document.form.count.value      <      1)

alert("输入数值不能小于零大于100!");
document.form.count.focus();
return      false;
}
if      (document.form.MESSAGE.value.length<10)

alert("输入文字小于10!");
document.form.MESSAGE.focus();
return      false;
}
return      true;
}
//-->
</script>

2.5      中文/英文/数字/邮件地址合法性判断

<SCRIPT      LANGUAGE="javascript">
<!--

function      isEnglish(name)      //英文值检测

if(name.length      ==      0)
return      false;
for(i      =      0;      i      <      name.length;      i++)      { 
if(name.charCodeAt(i)      >      128)
return      false;
}
return      true;
}

function      isChinese(name)      //中文值检测

if(name.length      ==      0)
return      false;
for(i      =      0;      i      <      name.length;      i++)      { 
if(name.charCodeAt(i)      >      128)
return      true;
}
return      false;
}

function      isMail(name)      //      E-mail值检测

if(!      isEnglish(name))
return      false;
i      =      name.indexOf("      at      ");
j      =      name      dot      lastIndexOf("      at      ");
if(i      ==      -1)
return      false;
if(i      !=      j)
return      false;
if(i      ==      name      dot      length)
return      false;
return      true;
}

function      isNumber(name)      //数值检测

if(name.length      ==      0)
return      false;
for(i      =      0;      i      <      name.length;      i++)      { 
if(name.charAt(i)      <      "0"      ||      name.charAt(i)      >      "9")
return      false;
}
return      true;
}

function      CheckForm()

if(!      isMail(form.Email.value))      { 
alert("您的电子邮件不合法!");
form.Email.focus();
return      false;
}
if(!      isEnglish(form.name.value))      { 
alert("英文名不合法!");
form.name.focus();
return      false;
}
if(!      isChinese(form.cnname.value))      { 
alert("中文名不合法!");
form.cnname.focus();
return      false;
}
if(!      isNumber(form.PublicZipCode.value))      { 
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return      false;
}
return      true;
}
//-->
</SCRIPT>

2.6      限定表单项不能输入的字符

<script      language="javascript">
<!--

function      contain(str,charset)//      字符串包含测试函数

var      i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return      true;
return      false;
}

function      CheckForm()

if      ((contain(document.form.NAME.value,      "%\(\)><"))      ||      (contain(document.form.MESSAGE.value,      "%\(\)><")))

alert("输入了非法字符");
document.form.NAME.focus();
return      false;
}
return      true;
}
//-->
</script> 

1. 检查一段字符串是否全由数字组成      
---------------------------------------      
<script language="Javascript"><!--          
function checkNum(str){return str.match(/\D/)==null}          
alert(checkNum("1232142141"))          
alert(checkNum("123214214a1"))          
// --></script>        
     
2. 怎么判断是否是字符        
---------------------------------------      
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");         
else alert("全是字符");     
          
3. 怎么判断是否含有汉字       
---------------------------------------       
if (escape(str).indexOf("%u")!=-1) alert("含有汉字");        
else alert("全是字符");          
   
4. 邮箱格式验证   
---------------------------------------     
//函数名:chkemail    
//功能介绍:检查是否为Email Address    
//参数说明:要检查的字符串    
//返回值:0:不是 1:是    
function chkemail(a)    
{ var i=a.length;    
var temp = a.indexOf('@');    
var tempd = a.indexOf('.');    
if (temp > 1) {    
if ((i-temp) > 3){    
if ((i-tempd)>0){    
return 1;    
}    
   
}    
}    
return 0;    
}    
   
5. 数字格式验证   
---------------------------------------     
//函数名:fucCheckNUM    
//功能介绍:检查是否为数字    
//参数说明:要检查的数字    
//返回值:1为是数字,0为不是数字    
function fucCheckNUM(NUM)    
{    
var i,j,strTemp;    
strTemp="0123456789";    
if ( NUM.length== 0)    
return 0    
for (i=0;i<NUM.length;i++)    
{    
j=strTemp.indexOf(NUM.charAt(i));    
if (j==-1)    
{    
//说明有字符不是数字    
return 0;    
}    
}    
//说明是数字    
return 1;    
}    
   
6. 电话号码格式验证   
---------------------------------------     
//函数名:fucCheckTEL    
//功能介绍:检查是否为电话号码    
//参数说明:要检查的字符串    
//返回值:1为是合法,0为不合法    
function fucCheckTEL(TEL)    
{    
var i,j,strTemp;    
strTemp="0123456789-()# ";    
for (i=0;i<TEL.length;i++)    
{    
j=strTemp.indexOf(TEL.charAt(i));    
if (j==-1)    
{    
//说明有字符不合法    
return 0;    
}    
}    
//说明合法    
return 1;    
}   
  
7. 判断输入是否为中文的函数  
---------------------------------------     
function ischinese(s){  
var ret=true;  
for(var i=0;i<s.length;i++)  
ret=ret && (s.charCodeAt(i)>=10000);  
return ret;  
}   
  
8. 综合的判断用户输入的合法性的函数 
---------------------------------------     
<script language="javascript"> 
//限制输入字符的位数开始 
//m是用户输入,n是要限制的位数 
function issmall(m,n) 

if ((m<n) && (m>0)) 
      { 
      return(false); 
      } 
else 
{return(true);} 

 
9. 判断密码是否输入一致 
---------------------------------------     
function issame(str1,str2) 

if (str1==str2) 
{return(true);} 
else 
{return(false);} 

 
10. 判断用户名是否为数字字母下滑线
---------------------------------------     
function notchinese(str){
var reg=/[^A-Za-z0-9_]/g
        if (reg.test(str)){
        return (false);
        }else{
return(true);        }
}

11. form文本域的通用校验函数
---------------------------------------     
作用:检测所有必须非空的input文本,比如姓名,账号,邮件地址等等。
该校验现在只针对文本域,如果要针对form里面的其他域对象,可以改变判断条件。

使用方法:在要检测的文本域中加入title文字。文字是在提示信息,你要提示给用户的该字段的中文名。比如要检测用户名
html如下<input name="txt_1" title="姓名">,当然,最好用可视化工具比如dreamweaver什么的来编辑域。
如果要检测数字类型数据的话,再把域的id统一为sz.
javascript判断日期类型比较麻烦,所以就没有做日期类型校验的程序了.高手可以补充。

程序比较草,只是提供一个思路。抛砖引玉! :)
哦,对了,函数调用方法:< form      onsubmit="return dovalidate()">

function dovalidate()
{
fm=document.forms[0] //只检测一个form,如果是多个可以改变判断条件
        for(i=0;i<fm.length;i++)
        { 
        //检测判断条件,根据类型不同可以修改
        if(fm.tagName.toUpperCase()=="INPUT" &&fm.type.toUpperCase()=="TEXT" && (fm.title!=""))
   
             if(fm.value="/blog/="")//
             {
             str_warn1=fm.title+"不能为空!";
             alert(str_warn1);
            fm.focus();
             return false;        
             }
             if(fm.id.toUpperCase()=="SZ")//数字校验
             {
                     if(isNaN(fm.value))
                    { str_warn2=fm.title+"格式不对";
                    alert(str_warn2);
                    fm.focus();
                     return false;
                     }
            }
        }
        return true;
}


2 >表单提交验证类


2.1 表单项不能为空

<script language="javascript">
<!--
function CheckForm()
{
if (document.form.name.value.length == 0) {
alert("请输入您姓名!");
document.form.name.focus();
return false;
}
return true;
}
-->
</script>

2.2 比较两个表单项的值是否相同

<script language="javascript">
<!--
function CheckForm()
if (document.form.PWD.value != document.form.PWD_Again.value) {
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return false;
}
return true;
}
-->
</script>

2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script language="javascript">
<!--
function isNumber(String)
{
var Letters = "1234567890-"; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
function CheckForm()
{
if(! isNumber(document.form.TEL.value)) {
alert("您的电话号码不合法!");
document.form.TEL.focus();
return false;
}
return true;
}
-->
</script>


2.4 表单项输入数值/长度限定

<script language="javascript">
<!--
function CheckForm()
{
if (document.form.count.value > 100 || document.form.count.value < 1)
{
alert("输入数值不能小于零大于100!");
document.form.count.focus();
return false;
}
if (document.form.MESSAGE.value.length<10)
{
alert("输入文字小于10!");
document.form.MESSAGE.focus();
return false;
}
return true;
}
//-->
</script>

2.5 中文/英文/数字/邮件地址合法性判断

<SCRIPT LANGUAGE="javascript">
<!--

function isEnglish(name) //英文值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}

function isChinese(name) //中文值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}

function isMail(name) // E-mail值检测
{
if(! isEnglish(name))
return false;
i = name.indexOf(" at ");
j = name dot lastIndexOf(" at ");
if(i == -1)
return false;
if(i != j)
return false;
if(i == name dot length)
return false;
return true;
}

function isNumber(name) //数值检测
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) {
if(name.charAt(i) < "0" || name.charAt(i) > "9")
return false;
}
return true;
}

function CheckForm()
{
if(! isMail(form.Email.value)) {
alert("您的电子邮件不合法!");
form.Email.focus();
return false;
}
if(! isEnglish(form.name.value)) {
alert("英文名不合法!");
form.name.focus();
return false;
}
if(! isChinese(form.cnname.value)) {
alert("中文名不合法!");
form.cnname.focus();
return false;
}
if(! isNumber(form.PublicZipCode.value)) {
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return false;
}
return true;
}
//-->
</SCRIPT>

2.6 限定表单项不能输入的字符

<script language="javascript">
<!--

function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}

function CheckForm()
{
if ((contain(document.form.NAME.value, "%\(\)><")) || (contain(document.form.MESSAGE.value, "%\(\)><")))
{
alert("输入了非法字符");
document.form.NAME.focus();
return false;
}
return true;
}
//-->
</script>

Thursday, August 19, 2010

仿百度搜索输入框提示JS代码(PHP+MySql数据库版

转自:http://bbs.phpchina.com/thread-190409-1-1.html

HTML代码
<div class="sidebarBlock" style="margin:0 auto; text-align:center;">
  <h3>仿百度搜索输入框提示JS代码(基于jquery.autocomplete.js插件)</h3>
  <form id="formkeyword" name="formkeyword" method="post" action="post.php">
    <div class="sidebarSearch">
          <input type="text" name="keyword" size="40" maxlength="255" value="" id="keyword" class="text"></input>
          <input type="submit" value="搜索" class="button"></input>
    </div>
  </form>
</div>
这是html的搜索框

JS代码:
<link href="css/jquery.autocomplete.css" type=text/css rel=stylesheet>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.autocomplete.js"></script>
<script language="javascript">
            $(document).ready(function() {
            $("#keyword").autocomplete("getajaxtag.php",
            {
                delay:10,
                minChars:1,
                matchSubset:1,
                matchContains:1,
                cacheLength:10,
                onItemSelect:selectItem,
                onFindValue:findValue,
                formatItem:formatItem,
                autoFill:false
            }
            );
            });
            function findValue(li) {
                if( li == null ) return alert("No match!");
                if( !!li.extra ) var sValue = li.extra[0];
                else var sValue = li.selectValue;
                }
            function selectItem(li) { findValue(li);}
            function formatItem(row) { return row[0];//return row[0] + " (id: " + row[1] + ")"//如果有其他参数调用row[1],对应输出格式Sparta|896
            }
            function lookupAjax(){
            var oSuggest = $("#keyword")[0].autocompleter;
            oSuggest.findValue();
            return false;
            }
</script>
Ajax获取后台数据库代码:
getajaxtag.php
<?php

include_once ('conn/conn.php');

$keyword = iconv ( 'utf-8', 'GBK', js_unescape ( $_GET ['q'] ) );
$sql = mysql_query ( "SELECT DISTINCT(tagname) FROM uchome_tag WHERE  tagname LIKE '%" . $keyword . "%'  LIMIT 0,10" );
while ( $value = mysql_fetch_array ( $sql ) ) {
    echo $keyword = iconv ( 'GBK', 'utf-8', $value ['tagname'] ) . "n";
}

function js_unescape($str) {
    $ret = '';
    $len = strlen ( $str );
    for($i = 0; $i < $len; $i ++) {
        if ($str [$i] == '%' && $str [$i + 1] == 'u') {
            $val = hexdec ( substr ( $str, $i + 2, 4 ) );
            if ($val < 0x7f)
                $ret .= chr ( $val );
            else if ($val < 0x800)
                $ret .= chr ( 0xc0 | ($val >> 6) ) . chr ( 0x80 | ($val & 0x3f) );
            else
                $ret .= chr ( 0xe0 | ($val >> 12) ) . chr ( 0x80 | (($val >> 6) & 0x3f) ) . chr ( 0x80 | ($val & 0x3f) );
            $i += 5;
        } else if ($str [$i] == '%') {
            $ret .= urldecode ( substr ( $str, $i, 3 ) );
            $i += 2;
        } else
            $ret .= $str [$i];
    }
    return $ret;
}
?>
需要的下载吧:下载地址

正确的洗澡顺序,据说99%的人都是错的。。

沐浴第一步:洗脸




为什么要把洗脸放在第一?原来,当你进入淋浴房后,热水一开,就会产生腾腾蒸气,而人体的毛孔 遇热会扩张,所以如果当你在此时没有先将脸洗干净,脸上积累了一天的脏东西,便会趁你毛孔大门开启之时,潜入你的毛孔。久而久之,你的毛孔便会被这些脏东 西挤得越来越大,占据着本不应该属于它们的领地,你脸上的痘痘也会愈冒愈多。



沐浴第二步:洗身

脸 洗干净之后就可以清洁身体了。值得注意的是,洗澡时水温应与体温接近为宜,即40℃左右。若水温过高,会使全身表皮血管扩张,心脑血流量减少,容易发生缺 氧;而水温过低则会使皮肤毛孔紧闭,不利于清除污垢,也会令体内热量散发不出来,浴后感觉四肢无力。此外,沐浴时间最好控制在20分钟以内,并且保证通风 良好。沐浴时间过长容易导致心脑缺氧、缺血。


  
沐浴第三步:洗头

洗完身体后,头发在蒸气的氤氲中已经得到充分滋润,此时,洗头的最佳时刻就已来临。最后,用清水彻底冲淋全身。至此,沐浴三部曲就大功告成了。

Wednesday, August 18, 2010

新浪出问题了,真麻烦,转载不了老婆大人的文章

从昨天到现在一直转不了。。。

一会儿维护,一会儿系统忙的。。

新浪出问题了,真麻烦,转载不了老婆大人的文章


先把地址加。。
http://blog.sina.com.cn/s/blog_69bb11800100ksrc.html

115网络U盘

http://u.115.com/invite/ba3445b4

Hi~,我最近使用了115网络U盘,邀请你一起加入体验~
115网络U盘很好用哦,我的几个好友已经在上面注册了。我们可以相互分享文件、文档、照片、音乐,3G 的永久空间、5G 的临时空间,还可以升级呢!相册,在线听歌,每天还可以免费领取空间哦……
怎么样?试试吧!

今天是周志飞同学生日,祝他生日快乐!

今天是周志飞同学生日,祝他生日快乐!


福如东海老王八,
寿比南山大石头。 

又一轮抢夺战结束

2010-08-18 09:00, VP上又一次出现老婆大人喜欢的东西 -- HELLO KITTY 的包包

虽然9点时,刚一开始出售,就被瞬间抢光,不过在本人不屑的努力下,终于刷新出了老婆大人第一眼看中的包包:

又一轮抢夺战结束




























嘿嘿,老婆说:老公就是神!

法国 - 2009圣诞前夕 - 图尔 et 神农索堡

2009圣诞前一两天。。。

携夫人来到了哥们儿周志飞和神超哥的地盘 -- 图尔










































呃。。具然没发现我们俩人在图尔的合影。。。



神农索堡


神农索堡(Chenonceau) 这是个迷人的,有故事的城堡,城堡左右两翼分跨卢瓦尔河支流察尔河(Cher)两岸,中间由五孔廊桥相连,常被誉为“停泊在察尔河上的船”。这是卢瓦尔河 谷所有古堡中最富浪漫情调的一座,许多新人都选择在这里举行婚礼。城堡建筑风格极具文艺复兴时期的奢华优雅风格。这里曾经居住过多位国王的爱妃和贵妇人, 因此,和古堡相关的轶事总少不了爱情的影子。最著名的“传说”最亨利二世的爱妾黛安娜(Diane)和王妃卡特琳娜(Catherine)之间的争风吃 醋。

先讲讲故事(详见百度):
  这是一座宿命的城堡,它无法同时容下两个女人的爱情,一个是黛安.波迪耶,公元1547年亨利即位时,以爱人身份获赠神农索堡;另一个是凯瑟琳.梅迪奇,公元1559年亨利去世时,以正牌皇后的名义夺回了神农索。   
  近5个世纪后,爱情与恩怨随水流而去,死亡让人公平,只有神农索堡还屹立着。   
  像一艘船停靠在河岸上,神农索堡的H型屋顶,呈现文艺复兴时代简单对称的美感,三层楼高的哥特 式简直,内涵法国式的灵魂。在亨利二世把城堡赠美人之前,窥视神农索已久的法兰西斯一世,运用国王的权力使波黑尔家族Bohier的承包变为皇产,好似螳 螂捕蝉黄雀在后,最早是16世纪法国财经界名人波黑尔Thomas Bohier和夫人凯瑟琳Katherine Biiconnet,从债务缠身的马可士家族买下这块地,兴建出梦想的承包,让神农索有了最初的雏形。无巧不成书,后来亨利二世的皇后,也叫凯瑟琳的女 人,塑造了现今神农索堡的容貌。















































最后来张虚幻的结尾