日度归档:2008年4月29日

想做一个多用户flash的音乐播放器给QQ空间、Blog用户使用

今天在网上想找个可以申请的

音乐播放器都找了N久,没看到哪个比较好用的。

突然觉得自己可以做个这个多用户我音乐播放器系统

准备去网上找些flash的音乐播放器外观。主要利用flash音乐播放器(带播放列表)+XML+php+mysql来做

申请后会自动生成一段代码,直接复制到QQ空间或是blog的模板里就行了。

一句话把人逗乐的经典!(新版)

一句话把人逗乐的经典!(新版)

如果白痴会飞,那我的公司简直是个机场。

  所有的男人生来平等,结婚的除外。

  咱们是否可以找个地方喝上一杯,交个朋友?或者说,还是我直接给把钱包给你?

  我想,只要我再稍微具有一些谦虚的品质,我就是个完美的人了。

  如果您需要咨询或建议,我们将免费提供;如果您需要正确的答案,请您另外付费。

  过去,闹钟响的时候,我常常有把它拍了再继续睡的毛病,但是自从我在闹钟旁边放了三个老鼠夹之后,我的毛病就根除了。

  如果说贝多芬是交响乐之父,那么是不是说贝多芬的父亲是交响乐之爷?

  我做过很多愚蠢的事情,但是我毫不在乎,我的朋友把它叫做自信。

  盲人协会真诚劝告您:千万不要酒后驾车。

  我想我应该去减肥了,上次献血的时候,居然流出了一百毫升的猪油。

  把俩条虫子做实验。威士忌里的那条死了,证明喝威士忌肚子里不长虫子。

  我的创造力高得无法形容,我的工作能力强得无法形容,我的文字能力妙得无法形容。

  假如计算机每重启一次,比尔盖茨都可以得到一元钱,那么他可要发了。

  十年后,法院第二次判杀人犯死刑。

  我假装为老板工作,老板假装付给我薪水。

  我和妻子已经18个月没说话了,我没机会打断她。

  有没有听过大猪说有,小猪说没有的故事?

  我从来不看电视,我只不过是经常核对一下报纸上的电视节目有没有印错。

  你的眼睛就象天上的明月,一只初一;一只十五。

  你这个孩子怎么不懂事啊?舅舅正在这里,你怎么还会想到要去动物园看狗熊?

  我的视力很差,比如说,看见那边墙上那颗图钉没有?你看得见吧,而我就看不见。

  每天我都不断地刷新一项世界纪录"我在世界上已经生活的天数。

  在因特网世界,你的女朋友可能是一位男性,而你的男朋友可能是一位女性,这很痛苦,但你得接受。

  你的射击成绩真是太糟了,我要是你,我就立刻自杀,为以防万一你要多带一些子弹的。

  如果你要和老虎比谁更能挨饿,那你赢定了。

  我把电视遥控器别在腰上,作出一付买了新手机的样子。

  只是有钱并不能让人幸福,所以我还偷些珠宝、邮票、手表什么的

  生活真是没劲儿,上个月我的一个哥们儿向我借了4000块钱,说要去做一个整形手术,结果现在我完全不知道他变成什么模样了

  抢劫者须知:本行职员只懂西班牙语,请您抢劫时一定要有耐心,最好携带翻译一名,谢谢!

  你瞎了眼啊?这么大的盾牌你看不见,偏偏要把石头朝我脑袋上扔!

  各位!今天是我太太30岁生日10周年纪念日!

  钱输光了,家具也输光了,衣服也输光了,我现在出门像一个阿拉伯人.

  我比较健忘,于是老婆常叮嘱我,说下雨天外出办事千万别拉了雨伞,所以家里现在已经有十把雨伞了.

  除了一项,其余栏目填得都挺好,关系这一栏应该填岳母,而不应该填紧张。

  爸爸今天打了我两次,第一次是因为看见了我手里两分的成绩单,第二次是因为成绩单是他小时候的。

  悲剧好比是我不小心切掉了自己的小手指;喜剧好比是你不小心掉进了下水道。

  争吵的时候,男人和女人的区别就像是步枪和机关枪的区别。

  下面,我将公布史密斯先生的遗嘱,在公布遗嘱之前,我想满怀诚意地问一句,史密斯夫人,您是否愿意接受我的求婚?

  别骂自己的孩子是小兔崽子,因为从遗传学的角度来讲,这对家长是不利的。

  老婆,我不该用床单擦皮鞋,不过出差刚回来,一时半会儿还改不过来,我错了。

  为提高产品的安全性,我们决定在可乐瓶子瓶盖上加印:请打开这一端;在瓶底上加印:请打开另一端。

  记者:根据最近一项民意调查显示,国民对国内外时事的关心度很低,议员先生,您对此有何看法?议员:没有看法,我不关心

  玛丽,如果你不答应嫁给我,我就立刻去自杀,这是我的一贯做法。

  选择题:假如律师和政客同时掉进河里,请问你是去喝咖啡还是去看电影?

  如果不是发生在我身上的话,那么这件事可真是太好笑了。

  您想拥有一副好的牙齿吗?这里送给你三点经验:一、饭后漱口早晚刷牙;二、每两年去医院检查一次牙齿;三、少管闲事。

  秀发去无踪,头屑更出众!

  我们总是认为脑子是人体最重要的器官,但是别忘了这个判断是谁做的.

  在教堂听讲经的时候我们应该保持肃静,打扰别人睡觉是很不礼貌的。

  这些不是破烂!是我收集的古董!当然,如果你不喜欢的话,你可以扔掉.

  人工智能和天然愚蠢无法相提并论"因为我们主张纯天然.

  一个人如果面对众人批评仍微笑自如,那么他很可能已经找到了替罪羊.

  昨天我报名参加了一个减肥训练班,他们要我在训练时穿宽松衣服,岂有此理?如果还有宽松衣服,那我还来报名干嘛?

告那些对学习PHP还不坚定的朋友

对于PHP,很多朋友抱怨发展问题,能力问题。还有自己以后的发展及薪水问题。还有一些口吻就是PHP不行,不适合大型架构等等。快下班了,作为一个开发PHP已经6年多了老鸟,在这里随意说上几句。希望能对那些刚刚入门的PHPER有些帮助。
   首先任何语言的能力关键在于自己的技术能力。否则给你一架波音飞机,你不会开,那它都不如自行车跑的快。
首先作PHP程序员应该从思想上认识到这是值得骄傲的事情。因为你已经进入了FREE的领域。
   从技术角度讲做JAVA程序员也是骄傲的事情;而作ASP呢。如果也能很好的开发COM组件也是很强的程序员。其实并不在于语言,而在于人。
   PHP是门槛低,但是有几个人摸到了它的天花板呢?
   学习PHP基本功很重要。 最好有数据结构的学习经历。
   对于1,2年的新手来说。在2年内必须完全掌握
   smarty+pear+adodb+xml+ajax+jquery(prototype)
   然后建议熟练分析过国内外开源代码,例如:discuz, zendcart等等等等诸多.
   工具类必须熟练掌握 zend studio 的开发。
   数据库必须熟练掌握 mysql & sqlserver
   操作系统必须对liunx有一定的了解。并能配置环境。
   对apache也应该买本管理员手册好好看看。
  以上为2年内,必须掌握的内容,这个时候你基本就是已经入门了。去个单位干个什么的都不很费劲了.

  第三年,要丰富自己的思想. 如果没有.NET或者JAVA类的开发经验,请需要补补了。因为.NET和JAVA的思想比PHP要成熟的多,同样学习SQLSERVER也是为了提高mysql的使用水平。数据库可不是简单的建表查询就可以了。
  所以我建义第三年的时候,多补充思想及数据库方面的内容。但是这并不意味前2年就不看。我的意思是第三年更趋于此。 因为在这个时候,你对PHP的很多基础部分已经了然于胸了,然后需要一个整体的提高,而不是很片面的提升。
   这个时候,你就要考虑架构问题了。
  第四年,当你部署一个大型项目的是否。负载及文件分布还有安全,等等部署方面的问题接踵而来。这个时候你要去努力理解什么是file server 集群,什么是web server集群 什么是database 集群等等。然后这些对你编码又有什么提高的要求,安全的要求等等。
   第五年。尝试努力学习C及C++这个时候你将对栈还有指针还有内存有一个更深刻的了解。
   第六年。该你自己拿主义了!

   上边是我自己的一些粗浅经验,每个人的经历不同,不可能一概论之,大家仅仅当作茶余饭后的消遣话罢了. 毕竟学海无崖.到了今天,其实很多PHP方面的东西,我依然不懂,甚至都没有看过,想到过. php还是很博大的. 同志们共同努力啊!

自己学正则时做的笔记,其实正则也不难哦[转自PHPCHINA]

正则可以搞定的东西很多哦,大家学习学习吧

一.正则表达式
1.匹配符
    1)头匹配符"^":如^0754,只匹配开头为0754的字符串
    2)尾匹配符"$":如0754$,只匹配结尾为0754的字符串
    3)全字匹配:将^和$结合,如^0754$,匹配0754字符串
2.转义字符
    1)空字符:
        换行\n
        回车\r
        制表符\t
    2)其他字符:
        "$" \$
        "^" \^
        "+" \+
        "/" \/
3.通配符
    1)*号:用来匹配前面一个字符是否在字符串中出现零次或多次.
    例1:’abc*’,匹配含有ab的所有字符串。
    2)+号:………………………………..一次或多次.
    例2:’abc+’,匹配含有abc的所有字符串。
    3)?号:………………………………..零次或一次.
    例3:只匹配含有ab、abc结尾不再含c的字符串。如abca,aabc,aaab都可以,但abcc就不行。
4.关于转义字符\$与双、单引号(php4环境)
    1)正则表达式本身就是一个字符串。
    2)当引号中含有$时,用双、单引号定义就有区别,区别如下:
        (1)使用单引号定义时,解释器会把引号内所有字符(包括$在内)都原封不动的赋值给字符串变量。
        (2)使用双引号定义时,解释器会把引号内"$"字符以及其后的合法字符(字母、数字、下划线)翻译成变量,直到遇到一个非法字符才认为变量名结束,该非法字符及其后面的字符都被视为一般字符赋给字符串变量,直到遇到下一个"$"为止。
        (3)注意:单个$出现在双引号的尾部,并且其后面不再有任何字符的时候,解释器不会将其翻译成变量。也不需要加转义\,当然不提倡。
        (4)如果待匹配的字符中本身就有$,就无法用双引号来定义这个正则表达式,原因是转义字符\$在单,双引号中表示的意义不同:
            <1>双引号中,\$和单个的$意义是一样的,都是代表尾匹配符,因此c\$$=c\$=c\$\$=c$=c\$\$;双引号中,\$在任何时刻都只代表一个字符"$",echo "c\$$"结果是c$$,并且\$和单个的$(单个的$是指该$无法和其后字符组成变量名)是完全等效的,都是尾匹配符,所以双引号中是无法写入作为非尾匹配字符的字符"$"的,也正是这个原因,大多数需要匹配$时定义正则表达式只能用”。
            <2>单引号中,\$的意义仅仅表示字符"$",尾匹配符是$,不管后面是否有合法变量名字符;单引号中,\$其实是两个字符,如不用于正则匹配将没有任何意义,echo ‘c\$$’结果仍是c\$$。单作为正则表达式来使用,单引号中的\$表示的是特殊字符"$",而尾匹配符就是单独的$字符。
    3)正则表达式的尾匹配符"$"和变量的定义符是相同的:
        例1:定义正则表达式为^ab$:$pattern="^ab\$";转义字符\$在双引号中就表示字符$,结果是^ab$。
        例2:如上题,使用$pattern="^ab$";显然是错误的,但是由于$在尾部,后面没有其他字符,所以依然适用。
        例3:以字符组合c$结尾的正则表达式:$pattern=’c\$$’;
        例4:如上题,$pattern="c\$$";正则表达式将\$视为尾匹配符,故只匹配以c结尾。

5."[]"方括号(字符簇)用法
    1)[]匹配一个字符,在[]中使用^开头表示取非,即其后的字符全部是不匹配的。
    例1:[a-zA-Z0-9]匹配所有大小写字母和数字。
    例2:[\n\t\r\f]匹配所有空字符。
    例3:[^A-Z]不匹配大写字母。
    例4:^[^0-9]匹配不以数字开头的字符或字符串
    2)特殊字符"."(句点)匹配除了"新行"之外的所有字符,模式^.abc$匹配任何以abc结尾的字符,但是不能匹配其本身。模式"."则可以匹配任何字符串,除了空字符串和只有一个"新行"字符的字符串。
    例1:’^.abc$’;匹配所有尾部含有abc的字符串,不匹配小数(新行),当不匹配abc。
    例2:’.’;匹配所有字符串,但不匹配空值。
    例3:’.abc’;匹配所有含abc的字符串,小数等等都可以,前提是不以abc为首,不匹配abc。
    例4:’.abc$’;匹配所有以abc结尾的字符串,任何小数等等都可以,不匹配abc。
    3)php提供了内置通用字符簇:
    [[:alpha:]]任何字母
    [[:digit:]]任何数字
    [[:alnum:]]任何字母和数字
    [[:space:]]任何空白字符
    [[:upper:]]任何大写字母
    [[:lower:]]任何小写字母
    [[:punct:]]任何表点符号
    [[:xdigit:]]任何十六进制数字
    [[:cntrl:]]任何ASCII值小于32的字符
    注意:以上字符簇有个特点,只要被匹配的字符或字符串中有此字符,即匹配正确,不管字符串是以什么方式组成的。
6."{}"大括号用法
    1)方括号只能匹配一个字符,而匹配多个字符只能用{}实现:{}用来确定前面内容出现的次数。{n}表示出现n次;{m,n}表示出现m~n次,包括m和n次;{n,}表示出现n次或者n次以上。
    例1:^a{10}$;匹配aaaaaaaaaa。
    例2:[0-9]{1,}$;匹配所有>0的数。
    2)"{}"与通配符之间的关系
    ?  相当于 {0,1} 零次或一次
    *  ….. {0,} 零次或无数次
    +  ….. {1,} 一次或无数次
7."()"用法
    圆括号"()"括住的pattern表示子模式,如$pattern='([1-9]{1}[0-9]{3})-([0-1]{1}[1-2]{1})-([0-3]{1}([0-9]|))’;()扩住的就是一个个子模式,()相当于把他们独立起来,分别匹配而相互不干扰。
二.POSIX风格正则表达式函数
1.ereg
    ereg(pattern,string,[array $regs]);
    eregi(pattern,string,[array $regs]);
    ereg函数在string中找到满足pattern模式的文本,如果找到true,没找到false。如果有第三个参数$regs,那找到的文本将放在$regs[0]中,并且regs数组中将一次存放各个圆括号表达的子模式匹配的结果。$regs[1]中存放了第一个子模式所匹配的结果,$regs[2]中是第二个,顺序从左到右,依次类推。如果没有找到匹配的文本,$regs数组的值不会被改变。
    注意:如果找到了匹配的文本,不管找到的子模式是多少个>9还是<9,ereg()只会改变$regs数组前10个元素的值。但是这不会影响函数对子模式组合的匹配结果。ereg总是先匹配完,如果没发现匹配的文本就false,发现了就true。如果有子模式,会逐步根据这些子模式重新在字符串中寻找匹配的文本,直到$regs数组被填满10个元素或者所有子模式被匹配完,如果子模式少于10则剩余的$regs将被赋空值。总之一句话,匹配归匹配,$regs归$regs,$regs只有10个值。
    eregi()函数与ereg()基本用法相同,只是eregi对大小写不敏感。
2.ereg_replace和eregi_replace
    ereg_replace(pattern,string replacement,string)
    eregi_replace(pattern,string replacement,string)
    string字串中满足pattern的文本将被替换成replacement。如果string中有pattern匹配的文本,那么返回替换之后的值,如果没有,则返回原来的string值。
    如果pattern中包含子模式,子模式可以有选择的被保留而不被替换。
    例1:pattern中的第二个子模式不被替换,replacement可写成这样:replacement\\2。这样string中匹配的pattern的字符串将被替换为replacement+pattern2,pattern2表示匹配pattern的文本中又匹配pattern的第二个子模式的文本。如果使用"\\0"表示保留整个匹配文本。利用这个特性可以实现在特定的字符串之后插入文本的操作。
    replacement必须是字符串类型变量,如果不是,替换时将强制转换成字符串类型。
3.split()函数和spliti()函数用法
    split(pattern,string,[int limit]);
    spliti(pattern,string,[int limit]);
    split以正则表达式pattern定义的模式为分隔符将string分隔成几个部分。如果分隔成功,返回的值为各个分隔后部分组成的数组,失败则返回false。可选limit表示最大分割块数。如果limit为5,那么即使string有>5个的地方符合pattern,string也只被分割为5个部分,最后一个部分是string去掉前四个部分后剩下的部分。返回值中也只有5个元素。
三.perl风格正则表达式及相关函数
1.perl正则语法
    perl分隔符,可使用"/","!"和"{}"。
    例1:/^[^0-9]/     !^[0-9]!    {^[0-9]}三个都一样。
    在分隔符内部,分隔字符本身就是一个特殊敏感字符,要进行转义。如果用分隔符"/",正则中又用了表达字符的"/",则必须要用"\/"。如果混合用"/"和"!"就没问题。
    例2:/\/\/$/    !//$! 两者也相同
    例3:!^\!\![0-9]$!    /^!![0-9]$/ 两者也相同
2.perl特殊意义字符
    \a ASCII值为7的告警符
    \b 词的边界
    \A 和脱出符号("/")等价
    \B 非词边界
    \cn 控制字符
    \d 单个数字
    \D 单个非数字
    \s 单个空白
    \S 单个非空白
    \w 单个的字母或下划线
    \W 单个的非词字符(不是字母也不是下划线)
    \Z 从目标字串的尾部开始匹配
3.高级特性
    1)或运算"|":
        例如!^ex|em!匹配条件是ex或em开头的字符串,还可以写成!^e(x|m)!。
        注意:()内的内容代表子模式\
    2)逻辑符号后面的模式选项
        !正则表达式!逻辑选项
        A:只匹配位于目标字串开头的字符。
        E:该选项使转义字符$构成的正则表达式只匹配目标字符串的结尾字符。如果选择m选项,该选项就被忽略。
        U:该选项禁止最大长度的搜索。一般情况下,搜索会尽量找最长的匹配字符串。例如模式/a+/在"caaaaab"字符串中的匹配结果是"aaaaa",但是使用该选项的模式/a+/U匹配的结果会是"a"。
        S:对模式进行学习,提高查找速度。
        i:该选项忽略大小写。
        m:该选项将含有换行符的字符串视为多行而不是一行。这个时候"$","^"等字符会匹配每个换行符。
        s:该选项使句点"."也匹配换行符。
        x:该选项通知PHP解释器在分析的时候忽略正则表达式定义中的非转义空格符。这样可以在正则表达式中使用空格来增强其可读性,但这时在表达式中使用空格符必须使用转义字符。
    3)扩展模式符号。
        (?#comment)    添加注释comment,可以增强正则可读性。
        (?=pattern)    指定在模式之后必须跟随值pattern。
        (?!pattern)    指定在模式之后不能跟随值pattern。
        (?n)           在模式内部而非结尾处定义模式选项n。
        (?: )           消耗字符,不捕获匹配结果。
        例:echo ereg("?:^a$","a");//无任何输出。

 

4.per正则函数
    1.preg_grep函数
        preg_grep(pattern,array input);
        输入数组input中寻找匹配模式pattern的字串,并将所有的匹配字符串返回。返回值就是所有匹配的字符串组成的数组。
    2.preg_match函数
        preg_match(pattern,string subject,[array matches])
        该函数在subject字符串中寻找匹配pattern的字符串。如果找到则返回一个非零值,否则返回零值。如果选用了可选项matches,那么匹配的字符串将被放到第一个元素的位置,可以用$matches[0]来读取,圆括号匹配的结果也按顺序放在这个数组中,第一个是$matches[1],第二个是$matches[2],依次类推。
    3.preg_match_all函数
        preg_match_all(pattern,subject,array matches,[int order])
        该函数在subject字符串中寻找匹配pattern的互不重叠的文本,找到了匹配的文本则返回匹配文本的个数,否则返回0。匹配文本被放在二维数组matches中,matches[0]中存放的是所有符合的字符串。各种嵌入的子模式匹配的结果依次放在数组matches[1]~[n]中。
        order参数可选,可取的值为PREG_PATTERN_ORDER和PREG_SET_ORDER。
    4.preg_replace函数
        preg_replace(pattern,replacement,subject,[int limit])
        该函数将subject中符合pattern模式的部分替换成replacement,返回值类型和subject类型一样,如果有替换,则返回替换后的值,反之则返回原来的值。
        参数可以是数组也可以是变量,有几种情况:
            <1>如果subject参数是数组类型。函数对每一个数组元素进行替换操作;
            <2>如果pattern是数组则函数根据每一个pattern中的类型进行替换;
            <3>如果pattern和replacement都是数组,则按两个数组中的元素对应完成替换;
            <4>如果replacement中的元素个数少于pattern中的元素个数。那么不够的部分将有空字符串来代替。
    5.preg_split函数
        preg_split(pattern,subject,[int limit][flages])
        该函数以pattern定义的模式为分隔符将subject字符串分隔为若干个部分,返回数组,其中存放被分隔后的字符串。limit可限制返回字符串的数目,如果设置为-1表示对返回的字符串数目不加任何限制。flags也是可选项,其有两个值:PREG_SPLIT_NO_EMPTY设定函数不返回空字符串,PERG_SPLIT_DELIM_CAPTURE,该选项设定pattern中的嵌入子模式也会被函数匹配。

恋[转]

初恋~
世界上最甜美的事情 莫过于你慢慢地向我走来  
静静地诉说着「我爱你」  

暗恋~
世界上最遥远的距离 不是生与死  
而是我就站在你面前 你却不知道我爱你  
 
 

热恋~
世界上最令人察觉不到的事情 便是你我在一起时  
那个不断流逝着的  
据说叫做「幸福」的日子  
 
 

 
 

痴恋~  
世界上最遥远的距离  
不是我就站在你面前 你却不知道我爱你  
而是明明知道彼此相爱 却不能在一起 

 

苦恋~
世界上最遥远的距离  
不是明明知道彼此相爱 却不能在一起  
而是明明无法抵挡这股想念  
却还得故意装作丝毫没有把你放在心里


 
 
失恋~
世界上最遥远的距离 我明明无法抵挡这股想念  
却还得故意装作丝毫没有把你放在心里  
而是用自己冷默的心对爱你的人  
掘了一条无法跨越的沟渠