驚艷於一個相容於ColdFusion,但是可免費商用的Railo,跌跌撞撞的研究過程,希望能有同好一起交流指教。
2014年3月12日 星期三
ColdFusion函數應用 - 找特定日期2 - 找某月週日
<cfset yourdateMonFitstDay = #DateFormat(yourdate,"YYYY/MM/01")#>
<cfoutput>
<CFIF DayOfWeek(yourdateMonFitstDay) IS 1>
該月
第一個周日為: #yourdateMonFitstDay#<Br />
第二個周日為: #dateadd("d",7,yourdateMonFitstDay)#<Br />
<CFELSE>
第一個周日為: #dateadd("d",8-(DayOfWeek(yourdateMonFitstDay)),yourdateMonFitstDay)#><Br />
第二個周日為: #dateadd("d",8-(DayOfWeek(yourdateMonFitstDay))+7,yourdateMonFitstDay)#><Br />
</CFIF>
</cfoutput>
2011年6月27日 星期一
ColdFusion 簡體轉繁體
首先當然需要設定的是簡體字與繁體字的對照, 下面設定兩個變數 gbword(存簡體字)、bigword(繁體字)
<CFSET gbword = ' 啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座么台轮骑制三发'>
<CFSET bigword = ' 啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翺襖傲奧懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百擺佰敗拜稗斑班搬扳般頒板版扮拌伴瓣半辦絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剝薄雹保堡飽寶抱報暴豹鮑爆杯碑悲卑北輩背貝鋇倍狽備憊焙被奔苯本笨崩繃甭泵蹦迸逼鼻比鄙筆彼碧蓖蔽畢斃毖幣庇痹閉敝弊必辟壁臂避陛鞭邊編貶扁便變卞辨辯辮遍標彪膘表鼈憋別癟彬斌瀕濱賓擯兵冰柄丙秉餅炳病並玻菠播撥缽波博勃搏鉑箔伯帛舶脖膊渤泊駁捕蔔哺補埠不布步簿部怖擦猜裁材才財睬踩采彩菜蔡餐參蠶殘慚慘燦蒼艙倉滄藏操糙槽曹草廁策側冊測層蹭插叉茬茶查碴搽察岔差詫拆柴豺攙摻蟬饞讒纏鏟產闡顫昌猖場嘗常長償腸廠敞暢唱倡超抄鈔朝嘲潮巢吵炒車扯撤掣徹澈郴臣辰塵晨忱沈陳趁襯撐稱城橙成呈乘程懲澄誠承逞騁秤吃癡持匙池遲弛馳恥齒侈尺赤翅斥熾充沖蟲崇寵抽酬疇躊稠愁籌仇綢瞅醜臭初出櫥廚躇鋤雛滁除楚礎儲矗搐觸處揣川穿椽傳船喘串瘡窗幢床闖創吹炊捶錘垂春椿醇唇淳純蠢戳綽疵茨磁雌辭慈瓷詞此刺賜次聰蔥囪匆從叢湊粗醋簇促躥篡竄摧崔催脆瘁粹淬翠村存寸磋撮搓措挫錯搭達答瘩打大呆歹傣戴帶殆代貸袋待逮怠耽擔丹單鄲撣膽旦氮但憚淡誕彈蛋當擋黨蕩檔刀搗蹈倒島禱導到稻悼道盜德得的蹬燈登等瞪凳鄧堤低滴迪敵笛狄滌翟嫡抵底地蒂第帝弟遞締顛掂滇碘點典靛墊電佃甸店惦奠澱殿碉叼雕凋刁掉吊釣調跌爹碟蝶叠諜疊丁盯叮釘頂鼎錠定訂丟東冬董懂動棟侗恫凍洞兜抖鬥陡豆逗痘都督毒犢獨讀堵睹賭杜鍍肚度渡妒端短鍛段斷緞堆兌隊對墩噸蹲敦頓囤鈍盾遁掇哆多奪垛躲朵跺舵剁惰墮蛾峨鵝俄額訛娥惡厄扼遏鄂餓恩而兒耳爾餌洱二貳發罰筏伐乏閥法琺藩帆番翻樊礬釩繁凡煩反返範販犯飯泛坊芳方肪房防妨仿訪紡放菲非啡飛肥匪誹吠肺廢沸費芬酚吩氛分紛墳焚汾粉奮份忿憤糞豐封楓蜂峰鋒風瘋烽逢馮縫諷奉鳳佛否夫敷膚孵扶拂輻幅氟符伏俘服浮涪福袱弗甫撫輔俯釜斧脯腑府腐赴副覆賦複傅付阜父腹負富訃附婦縛咐噶嘎該改概鈣蓋溉幹甘杆柑竿肝趕感稈敢贛岡剛鋼缸肛綱崗港杠篙臯高膏羔糕搞鎬稿告哥歌擱戈鴿胳疙割革葛格蛤閣隔鉻個各給根跟耕更庚羹埂耿梗工攻功恭龔供躬公宮弓鞏汞拱貢共鈎勾溝苟狗垢構購夠辜菇咕箍估沽孤姑鼓古蠱骨谷股故顧固雇刮瓜剮寡挂褂乖拐怪棺關官冠觀管館罐慣灌貫光廣逛瑰規圭矽歸龜閨軌鬼詭癸桂櫃跪貴劊輥滾棍鍋郭國果裹過哈骸孩海氦亥害駭酣憨邯韓含涵寒函喊罕翰撼捍旱憾悍焊汗漢夯杭航壕嚎豪毫郝好耗號浩呵喝荷菏核禾和何合盒貉閡河涸赫褐鶴賀嘿黑痕很狠恨哼亨橫衡恒轟哄烘虹鴻洪宏弘紅喉侯猴吼厚候後呼乎忽瑚壺葫胡蝴狐糊湖弧虎唬護互滬戶花嘩華猾滑畫劃化話槐徊懷淮壞歡環桓還緩換患喚瘓豢煥渙宦幻荒慌黃磺蝗簧皇凰惶煌晃幌恍謊灰揮輝徽恢蛔回毀悔慧卉惠晦賄穢會燴彙諱誨繪葷昏婚魂渾混豁活夥火獲或惑霍貨禍擊圾基機畸稽積箕肌饑迹激譏雞姬績緝吉極棘輯籍集及急疾汲即嫉級擠幾脊己薊技冀季伎祭劑悸濟寄寂計記既忌際妓繼紀嘉枷夾佳家加莢頰賈甲鉀假稼價架駕嫁殲監堅尖箋間煎兼肩艱奸緘繭檢柬堿鹼揀撿簡儉剪減薦檻鑒踐賤見鍵箭件健艦劍餞漸濺澗建僵姜將漿江疆蔣槳獎講匠醬降蕉椒礁焦膠交郊澆驕嬌嚼攪鉸矯僥腳狡角餃繳絞剿教酵轎較叫窖揭接皆稭街階截劫節莖睛晶鯨京驚精粳經井警景頸靜境敬鏡徑痙靖竟競淨炯窘揪究糾玖韭久灸九酒廄救舊臼舅咎就疚鞠拘狙疽居駒菊局咀矩舉沮聚拒據巨具距踞鋸俱句懼炬劇捐鵑娟倦眷卷絹撅攫抉掘倔爵桔傑捷睫竭潔結解姐戒藉芥界借介疥誡屆巾筋斤金今津襟緊錦僅謹進靳晉禁近燼浸盡勁荊兢覺決訣絕均菌鈞軍君峻俊竣浚郡駿喀咖卡咯開揩楷凱慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕顆科殼咳可渴克刻客課肯啃墾懇坑吭空恐孔控摳口扣寇枯哭窟苦酷庫褲誇垮挎跨胯塊筷儈快寬款匡筐狂框礦眶曠況虧盔巋窺葵奎魁傀饋愧潰坤昆捆困括擴廓闊垃拉喇蠟臘辣啦萊來賴藍婪欄攔籃闌蘭瀾讕攬覽懶纜爛濫琅榔狼廊郎朗浪撈勞牢老佬姥酪烙澇勒樂雷鐳蕾磊累儡壘擂肋類淚棱楞冷厘梨犁黎籬狸離漓理李裏鯉禮莉荔吏栗麗厲勵礫曆利傈例俐痢立粒瀝隸力璃哩倆聯蓮連鐮廉憐漣簾斂臉鏈戀煉練糧涼梁粱良兩輛量晾亮諒撩聊僚療燎寥遼潦了撂鐐廖料列裂烈劣獵琳林磷霖臨鄰鱗淋凜賃吝拎玲菱零齡鈴伶羚淩靈陵嶺領另令溜琉榴硫餾留劉瘤流柳六龍聾嚨籠窿隆壟攏隴樓婁摟簍漏陋蘆盧顱廬爐擄鹵虜魯麓碌露路賂鹿潞祿錄陸戮驢呂鋁侶旅履屢縷慮氯律率濾綠巒攣孿灤卵亂掠略掄輪倫侖淪綸論蘿螺羅邏鑼籮騾裸落洛駱絡媽麻瑪碼螞馬罵嘛嗎埋買麥賣邁脈瞞饅蠻滿蔓曼慢漫謾芒茫盲氓忙莽貓茅錨毛矛鉚卯茂冒帽貌貿麽玫枚梅酶黴煤沒眉媒鎂每美昧寐妹媚門悶們萌蒙檬盟錳猛夢孟眯醚靡糜迷謎彌米秘覓泌蜜密冪棉眠綿冕免勉娩緬面苗描瞄藐秒渺廟妙蔑滅民抿皿敏憫閩明螟鳴銘名命謬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌謀牟某拇牡畝姆母墓暮幕募慕木目睦牧穆拿哪呐鈉那娜納氖乃奶耐奈南男難囊撓腦惱鬧淖呢餒內嫩能妮霓倪泥尼擬你匿膩逆溺蔫拈年碾攆撚念娘釀鳥尿捏聶孽齧鑷鎳涅您檸獰凝寧擰濘牛扭鈕紐膿濃農弄奴努怒女暖虐瘧挪懦糯諾哦歐鷗毆藕嘔偶漚啪趴爬帕怕琶拍排牌徘湃派攀潘盤磐盼畔判叛乓龐旁耪胖抛咆刨炮袍跑泡呸胚培裴賠陪配佩沛噴盆砰抨烹澎彭蓬棚硼篷膨朋鵬捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片騙飄漂瓢票撇瞥拼頻貧品聘乒坪蘋萍平憑瓶評屏坡潑頗婆破魄迫粕剖撲鋪仆莆葡菩蒲埔樸圃普浦譜曝瀑期欺棲戚妻七淒漆柒沏其棋奇歧畦崎臍齊旗祈祁騎起豈乞企啓契砌器氣迄棄汽泣訖掐洽牽扡釺鉛千遷簽仟謙乾黔錢鉗前潛遣淺譴塹嵌欠歉槍嗆腔羌牆薔強搶橇鍬敲悄橋瞧喬僑巧鞘撬翹峭俏竅切茄且怯竊欽侵親秦琴勤芹擒禽寢沁青輕氫傾卿清擎晴氰情頃請慶瓊窮秋丘邱球求囚酋泅趨區蛆曲軀屈驅渠取娶齲趣去圈顴權醛泉全痊拳犬券勸缺炔瘸卻鵲榷確雀裙群然燃冉染瓤壤攘嚷讓饒擾繞惹熱壬仁人忍韌任認刃妊紉扔仍日戎茸蓉榮融熔溶容絨冗揉柔肉茹蠕儒孺如辱乳汝入褥軟阮蕊瑞銳閏潤若弱撒灑薩腮鰓塞賽三三傘散桑嗓喪搔騷掃嫂瑟色澀森僧莎砂殺刹沙紗傻啥煞篩曬珊苫杉山刪煽衫閃陝擅贍膳善汕扇繕墒傷商賞晌上尚裳梢捎稍燒芍勺韶少哨邵紹奢賒蛇舌舍赦攝射懾涉社設砷申呻伸身深娠紳神沈審嬸甚腎慎滲聲生甥牲升繩省盛剩勝聖師失獅施濕詩屍虱十石拾時什食蝕實識史矢使屎駛始式示士世柿事拭誓逝勢是嗜噬適仕侍釋飾氏市恃室視試收手首守壽授售受瘦獸蔬樞梳殊抒輸叔舒淑疏書贖孰熟薯暑曙署蜀黍鼠屬術述樹束戍豎墅庶數漱恕刷耍摔衰甩帥栓拴霜雙爽誰水睡稅吮瞬順舜說碩朔爍斯撕嘶思私司絲死肆寺嗣四伺似飼巳松聳慫頌送宋訟誦搜艘擻嗽蘇酥俗素速粟僳塑溯宿訴肅酸蒜算雖隋隨綏髓碎歲穗遂隧祟孫損筍蓑梭唆縮瑣索鎖所塌他它她塔獺撻蹋踏胎苔擡台泰酞太態汰坍攤貪癱灘壇檀痰潭譚談坦毯袒碳探歎炭湯塘搪堂棠膛唐糖倘躺淌趟燙掏濤滔縧萄桃逃淘陶討套特藤騰疼謄梯剔踢銻提題蹄啼體替嚏惕涕剃屜天添填田甜恬舔腆挑條迢眺跳貼鐵帖廳聽烴汀廷停亭庭挺艇通桐酮瞳同銅彤童桶捅筒統痛偷投頭透凸禿突圖徒途塗屠土吐兔湍團推頹腿蛻褪退吞屯臀拖托脫鴕陀馱駝橢妥拓唾挖哇蛙窪娃瓦襪歪外豌彎灣玩頑丸烷完碗挽晚皖惋宛婉萬腕汪王亡枉網往旺望忘妄威巍微危韋違桅圍唯惟爲濰維葦萎委偉僞尾緯未蔚味畏胃喂魏位渭謂尉慰衛瘟溫蚊文聞紋吻穩紊問嗡翁甕撾蝸渦窩我斡臥握沃巫嗚鎢烏汙誣屋無蕪梧吾吳毋武五捂午舞伍侮塢戊霧晤物勿務悟誤昔熙析西硒矽晰嘻吸錫犧稀息希悉膝夕惜熄烯溪汐犀檄襲席習媳喜銑洗系隙戲細瞎蝦匣霞轄暇峽俠狹下廈夏嚇掀鍁先仙鮮纖鹹賢銜舷閑涎弦嫌顯險現獻縣腺餡羨憲陷限線相廂鑲香箱襄湘鄉翔祥詳想響享項巷橡像向象蕭硝霄削哮囂銷消宵淆曉小孝校肖嘯笑效楔些歇蠍鞋協挾攜邪斜脅諧寫械卸蟹懈泄瀉謝屑薪芯鋅欣辛新忻心信釁星腥猩惺興刑型形邢行醒幸杏性姓兄凶胸匈洶雄熊休修羞朽嗅鏽秀袖繡墟戌需虛噓須徐許蓄酗敘旭序畜恤絮婿緒續軒喧宣懸旋玄選癬眩絢靴薛學穴雪血勳熏循旬詢尋馴巡殉汛訓訊遜迅壓押鴉鴨呀丫芽牙蚜崖衙涯雅啞亞訝焉咽閹煙淹鹽嚴研蜒岩延言顔閻炎沿奄掩眼衍演豔堰燕厭硯雁唁彥焰宴諺驗殃央鴦秧楊揚佯瘍羊洋陽氧仰癢養樣漾邀腰妖瑤搖堯遙窯謠姚咬舀藥要耀椰噎耶爺野冶也頁掖業葉曳腋夜液一壹醫揖銥依伊衣頤夷遺移儀胰疑沂宜姨彜椅蟻倚已乙矣以藝抑易邑屹億役臆逸肄疫亦裔意毅憶義益溢詣議誼譯異翼翌繹茵蔭因殷音陰姻吟銀淫寅飲尹引隱印英櫻嬰鷹應纓瑩螢營熒蠅迎贏盈影穎硬映喲擁傭臃癰庸雍踴蛹詠泳湧永恿勇用幽優悠憂尤由郵鈾猶油酉有友右佑釉誘又幼迂淤于盂榆虞愚輿余俞逾魚愉渝漁隅予娛雨與嶼禹宇語羽玉域芋郁籲遇喻峪禦愈欲獄育譽浴寓裕預豫馭鴛淵冤元垣袁原援轅園員圓猿源緣遠苑願怨院曰約越躍鑰嶽粵月悅閱耘雲鄖勻隕允運蘊醞暈韻孕匝砸雜栽哉災宰載再在咱攢暫贊贓髒葬遭糟鑿藻棗早澡蚤躁噪造皂竈燥責擇則澤賊怎增憎曾贈紮喳渣劄軋鍘閘眨柵榨咋乍炸詐摘齋宅窄債寨瞻氈詹粘沾盞斬輾嶄展蘸棧占戰站湛綻樟章彰漳張掌漲杖丈帳賬仗脹瘴障招昭找沼趙照罩兆肇召遮折哲蟄轍者鍺蔗這浙珍斟真甄砧臻貞針偵枕疹診震振鎮陣蒸掙睜征猙爭怔整拯正政幀症鄭證芝枝支吱蜘知肢脂汁之織職直植殖執值侄址指止趾只旨紙志摯擲至致置幟峙制智秩稚質炙痔滯治窒中盅忠鍾衷終種腫重仲衆舟周州洲謅粥軸肘帚咒皺宙晝驟珠株蛛朱豬諸誅逐竹燭煮拄矚囑主著柱助蛀貯鑄築住注祝駐抓爪拽專磚轉撰賺篆樁莊裝妝撞壯狀椎錐追贅墜綴諄准捉拙卓桌琢茁酌啄著灼濁茲咨資姿滋淄孜紫仔籽滓子自漬字鬃棕蹤宗綜總縱鄒走奏揍租足卒族祖詛阻組鑽纂嘴醉最罪尊遵昨左佐柞做作坐座麼臺輪騎製叁髮'>
有了對照組後, 後面的事情就簡單了, 只要將輸入的資料逐字檢查, 找到該字屬於第幾個字, 就換成要轉換的字碼即可,下面程式以簡體轉繁體作範例:
<!--- 設定輸入資料及輸出變數初始值 --->
<CFSET input_data = "這是繁體:測試,後面是簡體字:北京上海广州深圳武汉西安杭州南京成都重庆东莞大连">
<CFSET output_data = "">
<!--- 逐字檢查原始資料是否需要轉換 --->
<CFLOOP from="1" to="#len(input_data)#" index="iii">
<CFSET check_word = Mid(input_data,iii,1)>
<CFIF find(check_word, GBword)>
<CFSET check_word = Mid(bigword,find(check_word, GBword),1)>
</CFIF>
<CFSET output_data = output_data & check_word>
</CFLOOP>
<!--- 結果輸出 --->
<CFOUTPUT>
<TABLE border="1">
<TR><TD>GBword字數</TD><TD>#len(GBword)#</TD></TR>
<TR><TD>bigword字數</TD><TD>#len(bigword)#</TD></TR>
<TR><TD>測試原文</TD><TD>#len(input_data)#: #input_data#</TD></TR>
<TR><TD>簡轉繁體</TD><TD>#len(output_data)#: #output_data#</TD></TR>
</TABLE>
</CFOUTPUT>
輸出的結果:
當然有了前面的對照字碼, 後面的字碼轉換就可以用任何一種程式語言來實作.
如何抓取動態產生的輸入欄位資料 input data to array
之前好像某舊版ColdFusion可以直接前後端用矩陣做傳遞,但是年代久遠已經忘記作法了,試了幾次沒做出來就變通改用另一個方式來抓取資料。
test.cfm - 前端有待輸入的姓名跟成績若干個:欄位以 name_流水號 及 rank_流水號 命名
<CFOUTPUT>
<form action="test2.cfm" method="post">
<CFSET sno =0>
<CFLOOP from="1" to="5" index="iii">
<CFSET sno = sno + 1 >
姓名#sno#: <INPUT type="text" name="name_#sno#">
成績#sno#: <INPUT type="text" name="rank_#sno#"><bR>
</CFLOOP>
<INPUT type="hidden" name="sno" value="#sno#">
<INPUT type="submit">
</form>
</CFOUTPUT>
test2.cfm - 後端承接時用將欄位分別抓取下來丟到Array:
<CFOUTPUT>
<!--- 設定接收變數Array --->
<cfset getname=ArrayNew(1)>
<cfset getrank=ArrayNew(1)>
<CFLOOP from="1" to="#form.sno#" index="iii">
<cfset getname[iii] = "">
<cfset getrank[iii] = "">
</CFLOOP>
<!--- 如果有Form變數存在, 則進行分析, 將各資料放入對應的Array中 --->
<cfif isdefined('fieldnames') and fieldnames is not ''>
<cfloop from="1" to="#listlen(fieldnames)#" index="ano">
<!--- 利用底線_ 來區隔名稱與流水號 --->
<CFSET wordFirst = ListFirst(listgetat(fieldnames,ano) , "_")>
<CFSET wordNumber = ListLast(listgetat(fieldnames,ano) , "_")>
<!--- 判定變數名, 也過濾掉非動態產生的Form變數 --->
<CFIF wordFirst IS "name">
<cfset getname[wordNumber] = #trim(evaluate(listgetat(fieldnames,ano)))#>
<CFELSEIF wordFirst IS "rank">
<cfset getrank[wordNumber] = #trim(evaluate(listgetat(fieldnames,ano)))#>
</CFIF>
</cfloop>
</cfif>
<!--- 結果輸出 --->
<TABLE border="1">
<TR>
<TD>姓名</TD>
<TD>成績</TD>
</TR>
<CFLOOP from="1" to="#form.sno#" index="iii">
<TR>
<TD>#getname[iii]#</TD>
<TD>#getrank[iii]#</TD>
</TR>
</CFLOOP>
</TABLE>
</CFOUTPUT>
輸出畫面:
test.cfm
test2.cfm
這樣前端的欄位不管怎麼長,用JavaScript產生也好、從資料庫撈出不同的資料筆數也好,只要是固定的欄位名稱加上流水號,後端都能抓到。
出現request timeout 訊息處理
在ColdFusion中最簡單的解決方式加上一個URL變數 RequestTimeout=秒數,手動調整逾時的時間(ex:test.cfm?RequestTimeout=999);但是在 Railo中RequestTimeout預設值是關閉的,所以就算加上去也是會出現一樣的錯誤,要到Admin裡調整設定:
Railo Administrator -> Settings -> Application - > Request timeout in URL -> 勾選When the URL parameter [RequestTimeout] is passed in the URL obey it
這樣此變數即可生效。
不過這個錯誤訊息是個警訊,僅能治標,出現訊息還是應該要去檢查一下程式碼,是否程式邏輯上、網路效能、資料庫大量運算導致效能太慢。
ColdFusion常用數學函數
Abs(-5) = 5, Abs(5) = 5
三角函數
PI() = 3.14159265359
Sin(0/180*PI()) = 0
Cos(0/180*PI()) = 1
Tan(0/180*PI()) = 0
Atn(0) = 0.463647609001
極值
Max(1,2) = 2
Min(1,2) = 1
亂數
Rand() 傳回介於0~1之間的浮點亂數,使用前必須先執行Randomize函數。
Randrange(1, 1000) 傳回介於0~1000之間的整數亂數,使用前須先執行Randomize函數。
Randomize(任意值) 決定亂數Rand()或Randrange(n1, n2)所傳回的亂數值。
進位
Round(-7.8) = -8, Round(7.8) = 8 (四捨五入)
Ceiling(99.9) = 100, Ceiling(-99.9) = -99(無條件進位)
Fix(99.9) = 99, Fix(-99.9) = -99(無條件退位)
Int(99.9) = 99 (取整數部份)
Incrementvalue(123.3) = 124 (整數部份加 1後的整數)
Decrementvalue(-123.3) = -124(整數部份減 1 後的整數)
其他
Log10(1) = 0
Log(1) = 0
Sgn(-7) = -1, Sgn(7) = 1 (正負號判別式)
Sqr(100) = 10 (平方根)
Exp(1) = 2.71828182846 (指數)
InputBaseN("1010", 2) = 10 (二進位轉十進位,第二個參數範圍從2~36)
FormatBaseN(10, 2) = 1010 (十進位轉二進位,第二個參數範圍從2~36)
更多數學函數,可參考Adobe線上文件
ColdFusion常用字串函數
Asc("0") = 48
Asc("A") = 65
Asc("Apple") = 65
Chr 根據所輸入之ASCII Code值(需介於0 – 255),傳回對應之字元。
Chr(65) = "A"
Chr(Asc("A")) = "A"
CJustify 將原字串內容依新的字串長度予以置中對齊。
CJustify("Center", 10) = " Center "
Compare 依據ASCII Code值比較兩個字串大小(大小寫有差別),第一字串大於第二字串,傳回1
第一字串等於第二字串,傳回0
第一字串小於第二字串,傳回-1
Compare("coo", "Coo") = 1
Compare("Abc", "Abc") = 0
Compare("coo", "koo") = -1
CompareNocase 依據ASCII Code值比較兩個字串大小(大小寫沒有差別),傳回值同Compare。
CompareNocase("boo", "Boo") = 0
CompareNocase("boo", "foo") = -1
Find 找尋子字串是否包含於母字串中(大小寫有差別),並可設定母字串搜尋起始位置。若包含於母字串中,則傳回母字串中第一位相同字元之位置,反之,則傳回0。
Find("idf", "Abcidfgh", 1) = 4
Find("idg", "Abcidfgh", 1) = 0
FindNoCase 找尋子字串是否包含於母字串中(大小寫沒有差別),其他同Find。
Find("IDF", "Abcidfgh", 1) = 4
Find("idg", "Abcidfgh", 1) = 0
FindOneOf 找尋子字串集合中之任一字元是否存在於母字串(大小寫有差別),若存在則傳回母字串中第一個相同字元之位置,反之,則回傳0。
FindOneOf("ghd", "abcdefghijk", 1) = 4
FindOneOf("GhD", "abcdefghijk", 1) = 8
Insert 將子字串插入母字串所指定的位置當中。
Insert("abc", "123456789", 4) = "1234abc56789"
Insert("abc", "123456789", 0) = "abc123456789"
LCase 將字串中之英文字母轉換成小寫。
LCase("ColdFusion") = "coldfusion"
LCase("ABCD1234") = "abcd1234"
Left 從母字串之起始位置取出子字串。
Left("ColdFusion", 4) = "Cold"
Left("ColdFusion", 20) = "ColdFusion"
Len 傳回字串長度。
Len("ColdFusion") = 10
Len("Cold" & "Fusion") = 10
Len("") = 0
LJustify 將原字串內容依新的字串長度予以置左對齊。
LJustify("Left", 10) = "Left "
LTrim 去除字串中左邊的空格。
LTrim(" Leetide ") = "Leetide "
Mid 從母字串中取出子字串。
Mid("Dictionary", 3, 4) = "ctio"
Mid("Dictionary", 1, 15) = "Dictionary"
RemoveChars 移除字串中字元。
RemoveChars("ColdFusion", 3, 4) = "Cosion"
RemoveChars("ColdFusion", 3, 15) = "Co"
RepeatString 複製字串於原字串當中。
RepeatString ("ColdFusion", 2) = "ColdFusionColdFusion"
RepeatString ("ColdFusion", 0) = ""
Replace 取代字串中之特定字元(大小寫有差別)。
Replace("CACACA", "C", "Q") = "QACACA"
Replace("CACACA", "C", "Q", "ONE") = "QACACA"
Replace("CACACA", "C", "Q", "ALL") = "QAQAQA"
預設值為"ONE"
ReplaceList 取代字串中之特定字元列(大小寫有差別)。
ReplaceList("CABARET", "CA,BA,T", "SA,DA,K") = "SADAREK"
ReplaceList("CABARET", "CA,BA,T", "TA,DA,K") = "KADAREK" ,其中"CA"先被轉換成"TA",但隨後的"T"又被轉換成"K",故"CA"最終將轉換成"KA",此為Recursive之用法。
ReplaceNoCase 取代字串中之特定字元(大小寫沒有差別)。
Replace("cacaca", "C", "B") = "Bacaca"
Replace("CACACA", "c", "b", "ONE") = "bACACA"
Replace("CACACA", "C", "b", "ALL") = "bAbAbA"
預設值為"ONE"
Reverse 反置字串內容。
Reverse("ABCD") = "DCBA"
Replace("CACACA", "c", "b", "ONE") = "bACACA"
Right從母字串之最後一位字元取出子字串。
Right("ColdFusion", 6) = "Fusion"
Right("ColdFusion", 20) = "ColdFusion"
RJustify 將原字串內容依新的字串長度予以置右對齊。
RJustify("Right", 10) = " Right"
RTrim 去除字串中右邊的空格。
RTrim(" Leetide ") = " Leetide"
SpanExcluding 從字串起始位置依序取出字元,直到有相同特定字元時才停止(大小寫有差別)。
SpanExcluding ("I am happy", "h") = "I am "
SpanExcluding("Book", "b") = "Book"
SpanIncluding 從字串起始位置依序取出字元,直到沒有相同特定字元時才停止(大小寫有差別)。
SpanExcluding ("Sensitivity", "eStinsvy") = "Sensitivity"
SpanExcluding ("Sensitivity", "eStin") = "Sen"
Trim 去除字串中左邊與右邊的空格。
Trim(" Leetide ") = "Leetide"
Trim(" baby face ") = "baby face"
UCase 將字串中之英文字母轉換成大寫。
UCase("ColdFusion") = "COLDFUSION"
UCase("Yankee") = "YANKEE"
Val 將字串轉換成數字,若無法轉換則傳回0。
Val("1290") = 1290
Val("Ghost") = 0
Val("66Ghost") = 66
更多字串函數,可參考Adobe線上文件
2011年1月7日 星期五
ColdFusion函數應用 - 找特定日期
假設有個初始日期
<cfset yourdate = "2011-01-18">
找上週的第一天 (週日)
<CFSET preWeekFirstday = #dateadd("d",-(DayOfWeek(yourdate)+6),yourDate)#>
找上週的最後一天(週六)
<CFSET preWeekEndday = #dateadd("d",-DayOfWeek(yourdate),yourDate)#>
找當週的第一天 (週日)
<CFSET weekFirstday = #dateadd("d",-(DayOfWeek(yourdate)-1),yourDate)#>
找當週的最後一天(週六)
<CFSET weekEndday = #dateadd("d",7-DayOfWeek(yourdate),yourDate)#>
找下週的第一天 (週日)
<CFSET nextWeekFirstday = #dateadd("d",7-(DayOfWeek(yourdate)-1),yourDate)#>
找下週的最後一天(週六)
<CFSET nextWeekEndday = #dateadd("d",14-DayOfWeek(yourdate),yourDate)#>
找某週次的第一天 (週日)
<CFSET weekNum = 5> <!--- 假設要找第五週的資料 --->
<CFSET yearFday = year(yourdate)&"-1-1"> <!--- 該年第一天 --->
<CFSET xFirstday = #dateadd("d",fix((1-DayOfWeek(yearFday))+(weekNum-1)*7),yearFday)#>
找某週次的最後一天(週六)
<CFSET xEndday = #dateadd("d",fix((7-DayOfWeek(yearFday))+(weekNum-1)*7),yearFday)#>
完整程式碼參考:
<!--- 設定初始日期 --->
<cfset yourDate = "2011-01-18">
<!--- 找上週的第一天(週日) --->
<CFSET preWeekFirstday = #dateadd("d",-(DayOfWeek(yourdate)+6),yourDate)#>
<!--- 找上週的最後一天(週六) --->
<CFSET preWeekEndday = #dateadd("d",-DayOfWeek(yourdate),yourDate)#>
<!--- 找當週的第一天(週日) --->
<CFSET weekFirstday = #dateadd("d",-(DayOfWeek(yourdate)-1),yourDate)#>
<!--- 找當週的最後一天(週六) --->
<CFSET weekEndday = #dateadd("d",7-DayOfWeek(yourdate),yourDate)#>
<!--- 找下週的第一天(週日) --->
<CFSET nextWeekFirstday = #dateadd("d",7-(DayOfWeek(yourdate)-1),yourDate)#>
<!--- 找下週的最後一天(週六) --->
<CFSET nextWeekEndday = #dateadd("d",14-DayOfWeek(yourdate),yourDate)#>
<!--- 找該年某週次的第一天(週日) --->
<CFSET weekNum = 5> <!--- 假設要找第五週的資料 --->
<CFSET yearFday = year(yourdate)&"-1-1"> <!--- 該年第一天 --->
<CFSET xFirstday = #dateadd("d",fix((1-DayOfWeek(yearFday))+(weekNum-1)*7),yearFday)#>
<!--- 找該年某週次的最後一天(週六) --->
<CFSET xEndday = #dateadd("d",fix((7-DayOfWeek(yearFday))+(weekNum-1)*7),yearFday)#>
<!--- 找當週週次 --->
<CFSET yourWeek = week(yourdate)>
<!--- 結果輸出 --->
初 始 日 期:#DateFormat(yourdate, "YYYY/MM/DD")# <hr>
上週的第一天 (週日):#DateFormat(preWeekFirstday, "YYYY/MM/DD")# <Br>
上週的最後一天(週六):#DateFormat(preWeekEndday, "YYYY/MM/DD")# <Br><Br>
當週的第一天 (週日):#DateFormat(weekFirstday, "YYYY/MM/DD")# <Br>
當週的最後一天(週六):#DateFormat(weekEndday, "YYYY/MM/DD")# <Br><Br>
下週的第一天 (週日):#DateFormat(nextWeekFirstday, "YYYY/MM/DD")# <Br>
下週的最後一天(週六):#DateFormat(nextWeekEndday, "YYYY/MM/DD")# <Br><Br>
第#weekNum#週的第一天 (週日):#DateFormat(xFirstday, "YYYY/MM/DD")# <Br>
第#weekNum#週的最後一天(週六):#DateFormat(xEndday, "YYYY/MM/DD")# <Br><Br>
當 週 週 次:#yourWeek# <Br>
輸出結果:
ColdFusion時間函數: 常用基本時間(日期)函數
‧Now() = {ts '2011-01-07 12:30:13'}
‧CreateDate(2011, 5, 1) = {ts '2011-05-01 00:00:00'}
‧CreateTime(1, 2, 3) = {ts '1899-12-30 01:02:03'}
‧CreateDateTime(2011,5,1,1,2,3) = {ts'2011-05-01 01:02:03'}
‧CreateODBCDate(now()) = {d '2011-02-01'}
‧CreateODBCTime('2011-1-2 03:04:05') = {t '03:04:05'}
‧CreateODBCDateTime(now()) = {ts '2011-02-01 16:23:02'}
‧ParseDateTime(‘2011-1-2 3:4:5') = {ts'2011-01-02 03:04:05'}
(將字串改成時間物件,括弧中可再加第二個變數’POP’代表格林威治時間,中間須用逗號相隔)
秀出時間變數
‧DateFormat(Now(), 'yyyy/mm/dd') = 2011/01/02
第一個變數須為時間變數,第二個變數可以任意參差d日期小於10者前面不補0、dd日期小於10者前面補0、ddd以英文簡寫顯示日期如Mon表星期一、dddd以英文全名顯示日期如Monday表星期一、m 月份小於10者前面不補0、Mm 月份小於10者前面補0、mmm以英文簡寫顯示月份如Feb表二月、mmmm以英文全名顯示月份如February表二月、y年份小於10者前面不補0、yy年份小於100者前面不補0、yyyy年份以四位數字顯示)
‧TimeFormat(Now(), 'HH:mm:sstt') = 03:04:05AM
第一個變數須為時間變數,第二個變數可以任意參差12小時制的h時數小於10者前面不補0、12小時制的hh日期小於10者前面補0、24小時制的H時數小於10者前面不補0、24小時制的HH時數小於10者前面補0、m分鐘小於10者前面不補0、mm時數小於10者前面補0、s秒數小於10者前面不補0、ss秒數小於10者前面補0、t秀出A或P代表上午或下午、tt秀出AM或PM代表上午或下午)
時間加減
‧DateAdd('d','2011-2-2','5') = {ts'2011-01-28 0:0:0'}
(加-5天,其中第一個參數可使用:yyyy年、q季、m月、y年中的天數、d天、w星期的天數、ww週數、h小時數、n分鐘數和s秒數)
‧DateDiff('d', '2011-2-2','2011-2-3') = 1(兩個日期相差天數,其中第一個參數可使用:yyyy年、q季、m月、y年中的天數、d天、w星期的天數、ww週數、h小時數、n分鐘數和s秒數)
‧DatePart('d', '2011-1-2') = 2(傳回時間變數中的日期,其中第一個參數可使用:yyyy年、q季、m月、y年中的天數、d天、w星期的天數、ww週數、h小時數、n分鐘數和s秒數)
‧DateCompare('2011-1-2', '2011-1-5') = -1(比較兩個日期誰先誰後,結果以-1和+1表示)
‧CreateTimeSpan(1,1,1,1) = 1.04237268519(將日期以浮點數表示,單位是天,四個參數依序是天數、小時、分鐘和秒鐘)
抓取時間變數值:
‧Year(Now()) = 2011(取年份數值)
‧Month('2011-5-1') = 5(取月份數值)
‧Day('2011-1-2 03:04:05') = 2 (該月份的2號)
‧Hour('2011-1-2 03:04:05') = 3 (取小時數值)
‧Minute('03:04:05') = 4 (取分鐘數值)
‧Second('2011-1-2 03:04:05') = 5(取秒鐘數值)
時間排序值:
‧Quarter('2011-2-2 03:04:05') = 1(本年度的第一季)
‧DayOfWeek('2011-1-7 03:04:05') = 6 (該星期的第7天)
‧MonthAsString(8) = August (本年度第8月是August)
‧DayOfWeekAsString('1') = Sunday (1~7代表週日到週六)
‧Week('2011-2-15') (本年度的第8週)
‧DayOfYear('2011-2-2 03:04:05') = 33(本年度的第33天)
‧FirstDayOfMonth(now()) =32(本月初1是本年度第32天)
其他:
‧DaysInYear('2011-2-2 03:04:05') = 356 (本年度有365天)
‧DaysInMonth('2011-2-2 03:04:05') = 28 (本月份的天數)
‧IsNumericDate(now()) =YES(判別是否為有效的數值時間)
‧IsDate('2011-2-31') = NO(判別是否為有效的字串時間)
‧IsLeapYear(Now()) = YES (是否為閏年)
更多時間函數,可參考Adobe線上文件
2010年5月24日 星期一
如何重設Railo密碼 / 忘記Railo密碼怎麼辦?
2009年9月8日 星期二
Output Control - 空白字元與版本資訊
筆者建議設定:

設定路徑: Web Administrator > Settings > Output > Railo output control
以及 Server Administrator > Settings > Output > Railo output control 都要進行同樣設定
1. Whitespace management 空白字元管理 -
Removes all white spaces in the output that follow a white space移除全部的空白字元,此設定可以大幅度減少頻寬的消耗(對於動態網頁來說很容易產生大量的空白)。
筆者過去在其他環境下(.asp .php .jsp/Linux windows 2K),曾使用其他硬體或第三方軟體移除空白的功能,在某些特定環境組合下的瀏覽器會有顯示不正常的問題;但在Railo中尚未遇到此狀況,如果有遇到客戶反應,可嘗試關掉此功能測試。
但是節省下的頻寬/速度來說,筆者認為此功能相當值得啟動。
我們用一個簡單的範例解釋: (以 "九九乘法表" 程式為例; 很多人都是從這個開始第一個程式吧? :D )
程式原始碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="font.css" rel="stylesheet" type="text/css" />
<title>空白字元測試</title>
</head>
<body>
<CFOUTPUT>
<CFLOOP index="i" from="1" to="9">
<CFLOOP index="j" from="1" to="9">
#numberformat(i,"00")# * #numberformat(j,"00")# = #numberformat((i*j),"00")#<br />
</CFLOOP>
<hr />
</CFLOOP>
</CFOUTPUT>
</body>
</html>
畫面輸出結果:
我們再來看原始碼的內容做比較,
勾選移除空白字元:
未勾選狀態: (將資料反白後可以看得更清楚)
2.Output Railo version 顯示Railo版本 -
Return the Railo version in the response header在HTTP header中顯示Railo版本資訊,基於安全的理由,建議關閉此選項。
我們用 Tenlet 127.0.0.1 8600 來檢查
未勾選回傳版本資訊:
勾選回傳版本資訊:
2009年9月3日 星期四
取得Railo無人數限制金鑰步驟 (Railo Community)
官方原文介紹如下:
The different product levels are a result of the used serial number which you receive from the customer center. If you don't use a serial number you are going to get the Develop Version automatically. (see below)
Railo develop
The Develop Version is a version, addressing those users who are most likely to apply it in order for assembling CFML application . The version though is prohibited to be used commercially.
Railo community
Railo Community is intended to be used by low budget business applicants. The Community Version offers the entire language range of Railo except for some features listed below.
Railo enterprise
The Enterprise Version of Railo is the biggest and most comprehensive version intended to be used in a larger context.
三個版本的差異如下:
Railo Develop開發版 - 同一時間最多10個不能IP使用,而且基本上這個版本是禁止用來商業使用。
Railo Community社群版 - 無使用人數上限,只要註冊就能免費取得,授權範圍在單一伺服器上以及大部分的功能。與企業版差異在:
*限制部分管理功能
*沒有多媒體功能
*沒有管理同步
*沒有叢集功能
*未經官方同意不能散佈
Railo enterprise企業版 - 目前Railo最高等級產品,擁有最完整的功能,包含多媒體功能、多伺服器管理、叢集管理等。
這篇主要步驟是示範如何取得Railo Community社群版的金鑰。
1. 到 Railo官網後,點選"Customer Center"頁籤,勾選 [I'm a new customer] 選項
2. 輸入註冊資料,打*號的地方是必填的。(如需要可參考中文地址英譯)
3. 註冊成功後,點左邊 "Licenses"次頁,再點[get new license]
4. 選擇第一個 Railo Community 3.0,可以看到最後的價格是 $0.00 (企業版是美金$2999.00)
5. 成功後就可以看到一組序號,複製後在Railo管理介面中輸入,即可從開發版升級為社群版
2009年7月15日 星期三
Windows Server 2008測試環境建置-英文VHD與中文語言包安裝
1. 安裝 VPC 2007 (Windows XP Pro可免費安裝)
2. 下載 Windows Server 2008 Enterprise Edition x86 (Full Install) VHD或是Virtual Hard Drive (VHD) Windows Server 2008 Enterprise
3. 如果不習慣英文介面, 可Windows Server 2008內安裝中文包,下載 Windows Server 2008 多語系使用者介面 (MUI) 語言套件.
每一個語言套件皆為一支 .cab 檔案。語言套件的 .cab 檔案會分組為 .img 影像下載檔案。中文語系要選群組2的檔案。
32 位元 (x86) 語言套件
• 群組 2 (簡體中文、繁體中文、韓文、葡萄牙文 (巴西))
o 檔案名稱:6001.18000.080118-1840_x86fre_Server_LP_2-KRMSLP2_DVD.img
amd64 (x64) 語言套件
• 群組 2 (簡體中文、繁體中文、韓文、葡萄牙文 (巴西))
o 檔案名稱:6001.18000.080118-1840_amd64fre_Server_LP_2-KRMSLPX2_DVD.img
語言套件安裝步驟:
1. 至 [Control Panel] 選擇 [Regional and Language Options]

2. 到 [Keyboards and Languages] 選擇 [Install/uninstall languages]

3. 選擇 [Install languages]

4. 將下載的檔案燒錄成光碟或是 img 掛載,選擇 [zh-hk] 子目錄,依照預設步驟執行。




5. 最後請將 [Change my display language to 中文(繁體)] 與 [Apply change to system accounts] 兩個選項打勾後按 [Log off] 重新登入後即變為中文介面。

重新登入後,原本英文畫面就會變成繁體中文介面。
2009年7月6日 星期一
在 Windows XP 上安裝IIS
1. 控制台 -> 新增或移除程式 -> 新增/移除Windows元件
2. 選擇 Internet Information Services (IIS) 然後 [下一步]
3. 安裝過程會需要原版光碟,如光碟位置不在D槽請修改正確位置後,放入光碟後按 [確定]
4. 開始安裝,安裝完成後會出現結束畫面,按下 [完成]
5. 檢查一下是否安裝成功,桌面上 [我的電腦] 按滑鼠右鍵,選取 [管理(G)]
6. 在服務及應用程式中,可以看到 IIS已經在運作中;用瀏覽器連上 http://127.0.0.1/ 或 http://localhost/應該可以看XP IIS歡迎畫面
7. 我們可以用 telnet 127.0.0.1 80 去檢查,可以發現IIS版本是 5.1
這樣就完成IIS在Windows XP上的安裝,對於開發階段來說應該還滿方便的,不過記得XP連線數有限制,真的要對外服務時還是要用 Server。
2009年7月3日 星期五
你也可以決定 Railo未來走向
到 railo.uservoice.com 進行建議或投票.
進入畫面後的輸入框可以提出你對Railo的建議(新增功能、對某種技術支援等等)。
預設畫面是TOP目前最多人推薦的話題,其中會有Railo開發小組的意見回覆,當然越多人關心的議題,Railo開發小組會優先考慮,不登入狀態下可以有十票,單個議題最多投三票。我是投
1. add cfreport (.cfr) support 增加CFReport報表功能: 三票
2. Implement flash charts for CFChart 支援/增強CFChart Flash繪圖功能: 三票
3. Make installing on Windows easier 讓Windows安裝更容易: 三票
4. Implement the AJAX tags 支援/增強 AJAX標籤: 一票 (官方已開始進行!! ^^)
其他更多議題,請多多提供意見~其他我覺得還不錯的議題還有:
* CFLDAP - fully support CFLDAP with ssl (port 636)
完整的CFLDAP支援(含SSL)
* SSLv3 (Client Certificates) Support
Sometimes sites or web services have quite restrictive security, especially internal applications with sensitive data. We need support for SSLv3 (Client Certificates) for CFHTTP, CFInvoke and CreateObject.
增加CFHTTP 抓取加密網站功能
* Flash Remoting
Full flash remoting and Blaze integration
完整的 Flash Remoting支援 (官方已開始執行中)
期待未來的 Railo越來越棒!
備份 Railo Datesorce設定
假設安裝路徑在
C:\Railo\
相關設定在
C:\Railo\lib\railo-server\context\railo-server.xml
將此檔案備份即可。
2009年7月2日 星期四
[BUG] cfinput type="dateField"
Railo Server版本: 3.1.0.015
轉換舊程式語法時出現一些錯誤,這個錯誤是由 cfinput type="dateField" 造成的,以下是舊程式碼
<cfset zhtw_mon = '一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月'>
<cfset zhtw_day = '日,一,二,三,四,五,六'>
<cfformaction="test.cfm" method="post">
<cfinput dayNames="#zhtw_day#" monthnames="#zhtw_mon#" type="dateField" name="testdate" label="Start Date:" mask="YYYY/MM/DD">
</cfform>
在ColdFusion 8.0可順利執行
但是在Railo會出現錯誤:
Railo 3.1.0.015 Error (Application)
Message: value of attribute [daynames] must contain a string list with 7 values, now there are 7 values
如果把中文標題去除:
<cfform action="test.cfm" method="post">
<cfinput type="dateField" name="testdate" label="Start Date:" mask="YYYY/MM/DD">
</cfform>
在 CF 8.0正常, 在 Railo 會出現另一個錯誤
Railo 3.1.0.015 Error (Application)
Message: type [datefield] is only allowed if form format is flash
但是氣結的是, 強迫在CFform中加入format="flash"
<cfform action="test.cfm" method="post" format="flash">
CF 8.0 可以自動轉換成Flash模式

在 Railo還是會出現另一個錯誤
Railo 3.1.0.015 Error (Application)
Message: format [flash] is not supported, only the following formats are supported [html]
這部份可能要等新版 Railo解決此問題(或許需要外掛某個Flash Engine);在此之前只能改用其他 CF 語法後端檢查或是不能偷懶自己改寫 Javascipt語法
DateSource 新增、修改、刪除
建立Datasource:
1. 進入管理介面中,選取 Services -> Datasource.
2. 輸入datasource名稱,並選擇資料庫型態,本例為 MS SQLserver
3. 輸入資料庫位置、port number、帳號、密碼,以及其他設定,下方權限也最好設定一下,可以多一層保障,以避免程式無心造成隱藏的漏洞。(如:此Datasource專司查詢的功能,就不需要開放Insert,Delete等權限)
4. 暨有的datasource可以在第一次進來的畫面看到,也可以勾選後按下Verify進行連線DB檢查,如果Pass,後方的Check會呈現 "OK"字樣。
以上設定還滿容易的,這部分跟Adobe ColdFusion類似的,相當容易進行維護。
2009年6月30日 星期二
如何修改預設Port 8600 到Port 80
假設安裝路徑在 C:\Railo\
1. 到 C:\Railo\conf 下,修改 resin.conf
2. 搜尋 <!-- The http port --> 這段語法後方找到 <http address="*" port="8600">,將其中的 8600 改成所需要的PORT即可。
在Windows XP上安裝Railo Server
1. 安裝 Railo Server,這是官方最建議的版本,直接執行 railo-3.1.0.015-resin-with-jre-windows.exe
Railo Server
The server version is the main version of Railo.
This version is delivered with Caucho Resin as the integrated application and web server.
This version is recommended for production use.
Read our guidelines in the Railo blog for more information.
2. 出現版權宣告畫面,確認後按 [I Agree]

3. 選擇安裝路徑, 本例將路徑改為 C:\Railo\

4. 出現安裝畫面, 速度很快, 大約兩分鐘以內就可安裝完畢.

5. 安裝成功後,在程式集中可以看到Railo Server,點選Railo Administrator進行設定

6. 進入Admin後,可以看到上下兩個選項,進入後選項一模一樣,但是上方是 Single WEB(?),下方是 Every WEB(?),我們選擇下方 Every WEB

7. 第一次進入需要設定密碼,最少需要六位數

8. 設定完成後,即可進入設定畫面,可以查看各像設定與調整,注意上方的網址,目前執行的程式已經是 xxxxx.cfm,這表示這台電腦已經可以開始執行 ColdFusion程式語法囉!