星期五, 二月 27, 2009

PHP脚本:上传ftp文件到指定目录

使用php可以很容易的实现向ftp服务器上传文件的功能,下面的脚本就实现了这个功能:

    $daily_script_name = "file-name-to-upload";
    $ftp_host = "your-ftp-host";
    $uname = "user-name";
    $pass = '********';
    $remote = "your-remote-file-location/$daiy_script_name";

    $ftpc = ftp_connect($ftp_host);
    if (ftp_login($ftpc, $uname, $pass)) {
        print ("FTP logged in...<br />\n");
    } else {
        print ("FTP could not login.<br />\n");
    }
    if (ftp_put($ftpc, $remote, $daily_script_name, FTP_BINARY)) {
        print ("File was uploaded.<br />\n");
    } else {
        print ("File was not uploaded.<br />\n");
    }
    ftp_close($ftpc);

PHP正则表达式匹配多行

可以用修饰符 s 实现多行匹配,很好用。

preg_match_all('#pattern.*?pattern#si', $contents, $matchs);

星期四, 二月 26, 2009

Google Application 现在支持中国移动的手机验证了

今天再次尝试了一下google app,发现可以使用中国移动的手机就行验证了,收到的验证码是从 10657919160001发出来的。

这个号码就是google短信提醒的统一号码。

开始试用google app:)

星期二, 二月 24, 2009

我的博客出现在google alert里面了

有照为证:


记录一下:)

星期五, 二月 20, 2009

详解4G内存与CPU,BIOS和操作系统之间牵绊

转帖:原文地址 http://www.shineblog.com/user1/16922/archives/2009/1014067.shtml

因为内存价格的持续走低,目前各大内存厂商相继推出了单条2GB的DDR2 800内存,这些内存给人最大的感觉就是价格便宜量又足。很多用户就直接买了两条2GB的内存,想组成双通道使用。可拿回家一看,原本4GB的内存容量被识别出来的只有3.2GB左右。通过检查,发现内存本身并没有问题。那又是什么吞食了你的内存呢?这就是我们本期将要给大家说清楚的一个问题。

800MB内存被吞食了?

   大家或许会发现一种很奇怪的现象,在我们的Windows XP和Vista中,安装4GB内存后,显示出来的只有3.2GB左右甚至更少,有800多MB的内存"无缘无故"地消失了,这让人感觉十分费解,主板和操作系统之所以不能使用全部的4GB内存,问题的根源就在于计算机那32位X86架构。 32位X86架构是指个人电脑的地址总线是32位的,CPU、内存控制器、操作系统都是按32位地址总线设计。32位地址总线可以支持的内存地址代码是 4096MB,也就是有4GB的地址代码,可以编4GB个地址。这4GB个地址码正好可以分配给4GB内存。但是,这4GB个地址码不能全部分配给安装在主板上的物理内存。因为个人电脑还有很多设备需要地址代码,以便CPU可以根据地址码找到它们,同时CPU和这些设备交换数据需要暂时存放数据的存储器 ――寄存器,这些寄存器也需要地址代码。比如硬盘控制器、软驱控制器、管理插在PCI槽上的 PCI卡的PCI总线控制器,PCI-E总线控制器和PCI-E显卡,它们都有寄存器都需要系统分配给它们地址代码。这些地址由系统分配,电脑用户在使用中感觉不到。这样一来,当我们为电脑插上总容量为4GB的内存时,就有一部分内存分配不到地址代码而不能使用。

   要深入了解4GB内存之谜,我们就得弄清楚各部件与4GB内存关系,其中涉及到的部件有CPU、内存控制器(Intel平台集成在北桥,AMD平台集成在CPU)和操作系统。
   CPU、内存控制器、BIOS:能支持4GB

CPU能支持4GB内存

   从386时代开始,CPU 的地址总线就是32位的,可以访问4GB的地址代码。从奔腾Ⅱ到奔腾Ⅳ,理论上已经可以访问64GB的地址编码。后来支持 64位架构的奔腾Ⅳ到现在的酷睿2,地址总线已经升级到64位,64位地址总线可以访问千亿GB的地址编码。实际上用不到这么多的地址总线,一般用42位足够了,可以编码的地址量有4TB。兼容64位架构的CPU用在32位系统时地址总线就缩小为36位。所以现在的CPU支持4GB内存是没有问题的。

   内存控制器的地址总线

   与主板安装的内存直接关联的是内存控制器。内存控制器一边管理内存,一边通过地址总线与CPU通信。内存控制器的地址总线决定了可以支持的内存地址编码数量,同时内存控制器的实际连接内存的地址线决定了可以支持的内存容量。Intel把内存控制器放在北桥,AMD把内存控制器放在CPU。所以要分开介绍。

   1、Intel的内存控制器

   由于Intel的内存控制器放在北桥内,内存控制器的改变就与北桥密切相关。从P965开始内存控制器已经是36位地址总线,可以编64GB的地址代码,除系统占用的地址码,分配给主板安装的4GB内存绰绰有余。所以,从P965开始Intel的北桥支持4GB内存是没有问题的。

   2、AMD的内存控制器
   AMD从支持64位架构的CPU(Athlon64)开始把内存控制器集成到CPU。内存控制器的地址总线是64位架构的,使用40位,可以支持1000GB的地址编码。所以,AMD 从Athlon64开始,内存控制器支持4GB内存也是没有问题的。

  BIOS能支持4GB内存

   BIOS不是主板厂家自己开发的,BIOS版权控制在AMI等几个公司。它们与Intel和AMD合作共同开发BIOS。所以当Intel和AMD提出 "映射"方式解决4GB内存问题,AMI等厂商就会开发出相应的BIOS。早期的BIOS里面会显示出"映射"选项,用户可以开启或关闭。现在已经是默认开启,不再显示这项设置。所以可以说,对于现在的BIOS来讲,在支持4GB内存方面是没问题的。

  4GB内存的"原罪":X86架构

   CPU和内存控制器从硬件上为使用4GB内存提供了保障。但是还没有解决4GB内存的问题。障碍来自于个人电脑的体系标准――32位X86架构。早在 8086时代,内存是焊接在主板上的,一般也就几KB的内存,IBM规定640KB的地址是最高端,这个地址分配给BIOS,接下来有一段地址分配给系统的显示设备和I/O设备。电脑的迅速发展很快突破640KB内存达到并超过1MB。但是640KB下面这一段地址分配不能改变,因为CPU、DOS操作系统都是从640KB读取BIOS通过640KB下面的显示设备寄存地址,I/O设备寄存地址与显示设备、I/O设备通信、交换数据。如果更改,以前的所有电脑都要作废。所以必须寻找一个办法,既不改变640KB地址分配,又可以使用640KB到1MB的内存。那就是这种地址分配规则不变,采用"内存地址映射"技术,把640KB到500多KB的这一段地址映射到640KB-1MB的空间里,映射工作由BIOS负责。操作系统则由两条DOS命令 HIMEM.SYS和EMM386.SYS负责,熟悉DOS的用户,都会知道这两条命令。通过映射,就可以让DOS软件使用更多的内存。内存发展到 4MB,16MB,都是通过"内存映射"技术解决。到现在,个人电脑只要兼容DOS,就必须遵守640KB这种地址内存分配规则。

   奔腾Ⅱ时代,SDRAM内存容量达到128MB。那时候的地址总线是32位,最大地址空间是4GB,这时32位X86架构已经完全形成。除保留以前的内存地址分配规则外,还要把 BIOS地址映射到地址空间的顶端――4GB。一直到815时代的DDR内存,915时代的DDR2内存。真正使用的内存单条最大容量为512MB,系统使用的内存不会超过2GB。所以4GB内存问题没有显现。

   945时代时1GB的DDR2内存出现后,内存控制器的设计者们开始考虑主板安装4GB的内存条。但当时很少有用户使用4GB内存,4GB内存问题依然没有凸现。

   其实,Intel在915时期就提出要解决32位X86架构硬件支持4GB内存的问题。到P965正式解决时,解决方案还是"内存地址映射"。这个方案不是新想出来的,在32位X86架构的服务器系统早已经采用,只是被移植到个人电脑上来。

   从64GB的地址空间顶部开始,映射PCI设备的I/O地址,然后映射系统占用的3GB到4GB的地址。把3GB到4GB的这段地址代码留给安装在主板上的物理内存,就可以使用安装的全部内存了。

   为什么必须要采用"映射"的办法?因为内存的编址必须是连续的,不能断开。而系统的地址空间(也叫逻辑地址)是可以不连续的。就像我们给街道两边的房屋号码牌一样,编制方案(相当于逻辑地址)可以规划很大,可以分割。给到这一条街房屋的号码牌必须是连续的,这是真实的地址,以便于人们按地址寻找房屋。

   当然这种"映射"工作还是由BIOS完成。要支持4GB内存,还必须要BIOS支持。

   通过内存地址重映射把系统占用的4GB地址还给物理内存,是32位X86架构的规则。AMD也要采用这个规则,虽然它的内存控制器集成在CPU 内。也正是由于内存控制器集成在CPU内,北桥不再含有内存控制器。主板厂家开发AMD平台主板时,会依据市场定位设计主板支持的内存容量。有支持2GB 的,也有支持4GB、8GB或更多。所以AMD平台的4GB问题还要看主板。
   操作系统才是"罪魁祸首" 。

   操作系统管理和使用物理内存,因此在操作系统内也必须有一个逻辑(虚拟)地址系统,与主板上的所有存储地址(包括内存的、I/O设备的、BIOS的)对应,也有类似"地址总线"的结构。32位操作系统是按32位地址总线设计,32位的地址寄存器,因此只能管理4GB的地址,去掉系统占用的,也不能完全使用全部4GB内存。个人电脑的32位操作系统都不能支持4GB内存,即使是Vista 32 SP1也不能。Vista 32 SP1比XP 32 SP3进步一点的是在系统属性里面可以显示实际安装多少内。

   32位的Vista SP1已经能顺利识别4GB内存、但在任务管理器可以看到系统真正使用的内存不到4GB。

   * 那么哪些操作系统可以支持并使用4GB内存?第一是64位操作系统,因为64位操作系统是按64位地址总线设计的。比如Windows XP 64,Vista 64。第二是具有物理地址扩展功能,并且地址寄存器大于32位的服务器操作系统,但有些具备物理地址扩展的服务器操作系统,由于地址寄存器限于32位也不能支持4GB。

   最后:
   我们可以看出,现在的主板芯片组或内存控制器已经不再是吞食我们内存的主要原因。而罪魁祸首则是出在我们使用的32位操作系统上。虽然现在的Vista SP1已经能识别到完整的4GB内存,但实际使用的内存还是和以前的那3GB左右的没区别。所以现在来谈4GB内存的普及依然为时过早。另一方面,有的内存厂商为了避免出现内存浪费的情况发生,推出了三条1GB内存的组合套装,这也是相当贴心的一个设计。

星期一, 二月 16, 2009

动感时尚优惠券,5元代金券 (截止日期2009年2月28)

免费发放动感时尚优惠券,代金券
  • 优惠券有效期:2008年12月31日--2009年2月28日
  • 优惠券金额: 5元
  • 适用商品范围:动感时尚全场通用
  • 每张订单限用一张动感时尚优惠券
优惠券号码:3339359934
去FIM动感时尚逛逛:www.fim.com.cn

更多动感时尚优惠券,请见 动感时尚优惠券 (http://fimquan.blogspot.com/)

星期五, 二月 06, 2009

短url的开源源代码

短url的好处就不用说了,

容易记,
在邮件中不会折行,
......

短url的老大是http://tinyurl.com/,但是如果你想自己做一个缩短网址的网站,其实也很简单。
http://lilurl.sourceforge.net/下载一个缩短网址的源代码,自己安装一下。

我自己也写了做了一个缩短网址,实现短url的网站,
网站连接如下: http://u9d.cn/ 意思为 "U就短"

星期日, 二月 01, 2009

长音与旋律循环换气 zz

此种循环换气是所有循环换气的基础和前提,不掌握这种换气法,其它两种循环换气就无法学会。

循环换气法比较难学,在初练时,除 刻苦学练之外,还要细心寻找规律和突破点,循环换气究竟难在何处? 表面上看好像是换气二字,其实是难在换气时“循环”上。而使气息循环不断的突破点又是在“呼”与“吸”上。呼、吸二项对比,主要又难在呼气同时的吸上。也 可以反过来讲,它难在吸气同时的呼上。再进一步分析,与吸气的同时的呼气,气又是从何而来?是来自胸、腹还是口腔?当然是口腔(下颌部),所以在吸气时的 同时,下颚蓄气的呼出是循环换气法的最关健之处。 长音循环换气在练习时,首先将舌头(舌根)往内(后)收缩,使喉腔形成发“欧”音时的形态。当你发出这个音后,下颚必然会向外(下)扩张,喉腔也随之扩 大,口腔内的空间圆而大。在呼吸的运用上,和“鼓腮换气法”差不多,每当你即将吹完一口气时(约留三分之一左右),就将舌头(舌根)往后收,把气存入喉腔 (下颚)处,要尽量增大气在喉腔的储存量,然后用鼻迅速吸气(吸气时小腹往里收,把气往上提)。

记住,在与鼻吸气的同时,下颚往上收缩(舌头自然向前伸去),使储存的气根据乐曲的需要用颚收缩的不同压力将气压出,吹响笛子,保持笛音的不断。当第二口气吸进之后,应迅速接上去,这样反复循环就可使笛音不断。

开始练习时,可先用曲笛练吹低八度“1”、“2”、“3”三个音(即平吹),待掌握到一定程度后,再练其它的音,或换梆笛、中音笛进行练习。

练习可分以下三步:

第一步:先练习储气和呼气。先用下颚储存气的呼出,把笛子吹响。

1、舌根往内(后)收缩,形成发“欧”字音的形态,把气储满下颚部。
2、下颚往上收缩(舌头自然向前伸)把储存的气排压呼出,此时最重要之点就是保持住吹笛时的口形,风门不能变化,不能抖动。否则,笛子就无法吹响。音吹得越长、越响越好。

第二步:在第一步完成的基础上,加用鼻子吸气。

这里要注意:

1、吸气要快,先一口气一口气的分解练习,不要急于去连续进行。
2、一定要在呼(吹)气的同时用鼻吸气(即口呼鼻吸同时进行),这一步比较困难,但只要第一步打好了基础,也是容易掌握的。

第三步循环不断地连续练习

练习这一步时的关键在于从鼻子吸进气之后又要转送到肺部,然后呼出去。这时,鼻子和嘴需要一个连接转换过程。变在这个转换之中,往往易有一个断续的痕迹,这是初学者普遍遇到的难题。

要解决这个难题,在日常练习时一定要注意:

1、全身不要过于紧张,特别是口腔、鼻腔要有意识地放松弛一些。
2、加强小腹(丹田)的控制,以减轻口腔的控制力和紧张感。
3、初练时,每到口吹鼻吸两动作转换这际,可将气息缩小,使音弱下来,慢慢地去完成转换过程。
4、在两动作(吸与呼)转换过程中,头部和上体尽量不要幌动,应保持平稳。 只要注意到这几方面,细心摸索练习,就可以很快突破这一关的。

平日最好在笛子上练习,但在没有笛子的情况下,也可以进行练习。

方法是:

1、把某一只手(左右都可以)抬起,手心对着风门(嘴)练习换气,依靠手心的感觉,来测量你我气是否集中,有无中断。
2、用循环换气方法来练习吹灯(蜡烛)要使灯火摆动,但不能使它熄灭,来测量你的运气是否连贯、均匀。
3、民间艺人过去练习唢呐的鼓腮换气法时,常用一节空心小棒,插入水中练吹,使水落石出泡不停断地翻滚来练习吹、吸两动作的连续转换。这一方法虽不太适用于笛子,(因为在吹笛子时,要时常改变用气的力度、角度和口形),但用来练习呼吸动作也还是可取的。

在练习过程中,可逐步将嘴与目的物(灯或手)的距离由近渐远地拉开,以测量你的气量是否增加。

在练习和运用这一技巧时,总括起来应注意以下几点:

1、吸气的动作要迅速。
2、第二口气接上去时,一定要连贯均匀,不可时多时少,时缓时急。
3、在吹奏时,光可稍下俯一些,不可直硬挺仰。这样可使喉腔有力地扩大,以增加口腔和喉腔的控制力。
4、在换气的过程中,小腹要始终保持控制状态,不可松软,以免失去控制。
5、身体要平稳,不可上下前后倒斜抖动。
6、为使笛音柔细动听,而且便于换气,遇到长音时,可加用本位或下位虚颤音(即指震音)相助。