"黑色食品”主要是指含有黑色素和带有黑色字眼的粮、油、果、蔬、菌类食品。常用的黑色食品有:黑米、黑麦、紫米、黑乔麦、黑豆、黑豆豉、黑芝麻、黑木耳、黑香菇、紫菜、发菜、海带、黑桑椹、黑枣、栗子、龙眼肉、黑葡萄、黑松子、乌骨鸡、黑海参、黑蚂蚁菜等等。
现代医学认为:“黑色食品”不但营养丰富,且多有补肾,防衰老,保健益寿,防病
治病,乌发美容等独特功效。经大量研究表明,“黑色食品”保健功效除与其所含的三大营养素、维生素、微量元素有关外,另其所含黑色素类物质也发挥了特殊的积极作用。
如黑色素具有:1、清除体内自由基的作用;2、抗氧化.降血脂作用;3、抗肿瘤作用;4、美容作用;5、对性功能的促进作用等。这可能说明为什么当今世界流行“黑色食品”之奥秘所在。黑色食品其营养与保健功能是十分明显的。据测定,黑米中含有人体需要的18种氨基酸,还含有含量很高的铁、钙、锰、锌等微量元素与天然色素,经常食用可显著提高人体血色素和血红蛋白的含量,对心血管系统起保健作用,且有利于儿童发育,健脑与产妇病后体质虚弱者的康复。
食品专家认为,黑色食品不仅给人们质朴、味浓、壮实的食欲感,而且经临床实践证明:经常食用这些食物,可调节人体生理功能,刺激内分泌系统,促进唾液分泌,有促胃肠消化与增强造血功能,提高血红蛋白含量,并有滋肤美容、乌发作用,对延缓衰老也有一定功效。
科学研究证实,有24种黑色食物具有抗癌作用,其中尤以鳖、乌梅、海参、黑枣、黑木耳、酱油、乌贼墨汁等为佳。据分析,鳖(又名甲鱼)体内存在着大量的酶,在其血液中的白血球更是多得惊人,科学家将甲鱼粉喂食接种了癌细胞的老鼠,30天后每天喂食500克甲鱼粉的老鼠体内癌细胞肿块减少了30%。
研究人员还发现,甲鱼壳也有抗癌的效果,很适合肿瘤患者食用。乌梅是青梅的复方人参清肺汤所制,能提高肿瘤患者的淋巴细胞转化率,适用于子宫颈癌、鼻咽癌、直肠癌。海参是一种滋补强壮剂,从海参中提取的刺参粘多糖对多种癌症均有一定疗效,特别是对腺癌疗效更佳。黑枣含有丰富的维生素,有极强的增强体内免疫力的作用,并对贲门癌、肺癌、吐血有明显的疗效。
关于酱油的抗癌作用,科学人员用两组小白鼠作对照试验,进食某种致癌物质后,长期吃酱油的一组患癌率明显低于不吃酱油的一组。黑木耳适用于抑制妇女子宫颈癌及阴道癌。乌贼墨汁的抗癌作用在于可使防御机能增强,从而提高免疫力,进而杀死癌细胞。用墨鱼汁染黑的米饭成为意大利、西班牙一带国家与地区风行的饮食。
黑米具有滋阴补肾、健脾暖肝、补血益气、增智补脑、增强新陈代谢、明目活血、治少年白发,供孕妇、产妇补虚养生等功能。对贫血、高血压、神经衰弱、慢性肾炎等疾病均有疗效。维生素B1(是普通大米的2倍)、B2、B6、B12、铁(是普通大米的7倍),钙、磷、硒、镁、铜、锌等微量元素都比白米高。
紫黑粒小麦它的蛋白质含量比普通小麦高六倍,钙、磷、赖氨酸、硒、维生素K等多项因子的含量超过普通小麦的3倍。
黑乔麦的营养丰富,蛋白质含量为13%,脂肪含量为3%,其中油酸和亚油酸含量相当高。此外还富含维生素P、B1、B2、VE以及微量元素镁、铁、钙、铜等均比谷物类食品高许多倍,尤其微量元素铜含量居各种粮食之冠。
黑乔麦可药用,具有消食、化积、止汗、消炎之功效。因富含油酸和亚油酸,有降低血脂,防止脑血管出血的作用。另外还含有叶绿素和芦丁以及烟酸,而芦丁有降低毛细血管的通透性,加强VE的作用及促进VC在体内的蓄积,烟酸有扩张小血管和降低胆固醇的作用。临床还用黑乔麦治疗高血压、控制糖尿病,增加视力、防治白内障、视网膜炎等。
黑豆具有补肝肾、强筋骨、暖肠胃、明目活血、利水解毒的作用,也是润泽肌肤、乌须黑发之佳品。黑豆含有丰富的维生素、蛋黄素、核黄素、黑色素和被称作“生活素”的激素。其中B族维生素(B1、B2)和VE含量很高,仅VE含量相当于肉的7倍以上,对人体的营养保健、防老抗衰、美容养颜,增强精力活力的作用是很大的。
黑豆豉的药用广泛,主治头痛寒热,瘴气恶毒,烦躁胸闷,虚劳喘咳,两脚冷疼,止血痢、治腹痛,治小儿胎毒、头疮等。老年人常食豆豉能有效地预防脑血栓的形成,从而起到强壮血管,保持充卟的脑血流量,防治老年性痴呆的作用。
黑芝麻具有补养肝肾,健脑润肺、养血乌发,坚筋骨,防衰老的作用,是一种常用的滋补佳品。
近代研究证明,黑芝麻含有丰富的油酸、亚油酸,卵磷脂、维生素E和蛋白质及钙、铁等物质。其含油量高达50%以上,尤其是维生素E其偏含量为植物食品之冠。能防止过氧化脂质对人体的危害,抵消或中和细胞内衰老物质“游离基”的积聚,有延缓衰老,延年益寿之功效。此外还有减少血液凝块,防止动脉粥样硬化及冠心病的作用。
黑木耳具有益气补血、凉血止血、润肺镇静、清涤胃肠,乌发美容等功效。
据美国明尼苏达大学医学院汉默斯密特博士认为,黑木耳具有抗血小板凝聚和阻止血液中胆固醇沉积的作用。动脉硬化、高血压、冠心病患者和中老年人常服用,就有减少脑血栓、心肌梗塞的发生和预防中风、冠心病的作用。
黑木耳在补血的同时,又有凉血止血作用,对妇女月经过多和咯血、吐血、血衄、痔疮出血等病人具有标本同治的效果。
黑木耳的胶体吸附力较强,能消化纤维一类物质、吸附肠内残渣,起到清涤胃肠的作用。黑木耳含有核酸及其所含脂类成分中的卵磷脂,经近代科学研究表明具有健美美容、延缓衰老、延长青春的功效。
因此,黑木耳在国内外都深受广大消费者欢迎、享有“素中佳肉”之美誉。
“黑色食品”的兴起,反映人们的营养、保健追求。当然,尽管黑色食品营养丰富,有益于身体,但是,也需要其他色素的食物来调配。诸如白色食物的大米、面粉可以提供蛋白质、热量等;黄色蔬菜中的南瓜、马铃薯,红色蔬菜中的番茄、胡萝卜、红辣椒,绿色蔬菜中的芹菜、菠菜、空心菜、青椒菜,均有着不同的维生素与微量元素,都是人机体所必须的营养物质。因此,在膳食中把各种色彩的食物搭配起来食用,避
免偏食或挑食,使身体内所必须的酸性与碱性食物得以平衡,才有利于健康与延年益寿。
现代医学认为:“黑色食品”不但营养丰富,且多有补肾,防衰老,保健益寿,防病
治病,乌发美容等独特功效。经大量研究表明,“黑色食品”保健功效除与其所含的三大营养素、维生素、微量元素有关外,另其所含黑色素类物质也发挥了特殊的积极作用。
如黑色素具有:1、清除体内自由基的作用;2、抗氧化.降血脂作用;3、抗肿瘤作用;4、美容作用;5、对性功能的促进作用等。这可能说明为什么当今世界流行“黑色食品”之奥秘所在。黑色食品其营养与保健功能是十分明显的。据测定,黑米中含有人体需要的18种氨基酸,还含有含量很高的铁、钙、锰、锌等微量元素与天然色素,经常食用可显著提高人体血色素和血红蛋白的含量,对心血管系统起保健作用,且有利于儿童发育,健脑与产妇病后体质虚弱者的康复。
食品专家认为,黑色食品不仅给人们质朴、味浓、壮实的食欲感,而且经临床实践证明:经常食用这些食物,可调节人体生理功能,刺激内分泌系统,促进唾液分泌,有促胃肠消化与增强造血功能,提高血红蛋白含量,并有滋肤美容、乌发作用,对延缓衰老也有一定功效。
科学研究证实,有24种黑色食物具有抗癌作用,其中尤以鳖、乌梅、海参、黑枣、黑木耳、酱油、乌贼墨汁等为佳。据分析,鳖(又名甲鱼)体内存在着大量的酶,在其血液中的白血球更是多得惊人,科学家将甲鱼粉喂食接种了癌细胞的老鼠,30天后每天喂食500克甲鱼粉的老鼠体内癌细胞肿块减少了30%。
研究人员还发现,甲鱼壳也有抗癌的效果,很适合肿瘤患者食用。乌梅是青梅的复方人参清肺汤所制,能提高肿瘤患者的淋巴细胞转化率,适用于子宫颈癌、鼻咽癌、直肠癌。海参是一种滋补强壮剂,从海参中提取的刺参粘多糖对多种癌症均有一定疗效,特别是对腺癌疗效更佳。黑枣含有丰富的维生素,有极强的增强体内免疫力的作用,并对贲门癌、肺癌、吐血有明显的疗效。
关于酱油的抗癌作用,科学人员用两组小白鼠作对照试验,进食某种致癌物质后,长期吃酱油的一组患癌率明显低于不吃酱油的一组。黑木耳适用于抑制妇女子宫颈癌及阴道癌。乌贼墨汁的抗癌作用在于可使防御机能增强,从而提高免疫力,进而杀死癌细胞。用墨鱼汁染黑的米饭成为意大利、西班牙一带国家与地区风行的饮食。
黑米具有滋阴补肾、健脾暖肝、补血益气、增智补脑、增强新陈代谢、明目活血、治少年白发,供孕妇、产妇补虚养生等功能。对贫血、高血压、神经衰弱、慢性肾炎等疾病均有疗效。维生素B1(是普通大米的2倍)、B2、B6、B12、铁(是普通大米的7倍),钙、磷、硒、镁、铜、锌等微量元素都比白米高。
紫黑粒小麦它的蛋白质含量比普通小麦高六倍,钙、磷、赖氨酸、硒、维生素K等多项因子的含量超过普通小麦的3倍。
黑乔麦的营养丰富,蛋白质含量为13%,脂肪含量为3%,其中油酸和亚油酸含量相当高。此外还富含维生素P、B1、B2、VE以及微量元素镁、铁、钙、铜等均比谷物类食品高许多倍,尤其微量元素铜含量居各种粮食之冠。
黑乔麦可药用,具有消食、化积、止汗、消炎之功效。因富含油酸和亚油酸,有降低血脂,防止脑血管出血的作用。另外还含有叶绿素和芦丁以及烟酸,而芦丁有降低毛细血管的通透性,加强VE的作用及促进VC在体内的蓄积,烟酸有扩张小血管和降低胆固醇的作用。临床还用黑乔麦治疗高血压、控制糖尿病,增加视力、防治白内障、视网膜炎等。
黑豆具有补肝肾、强筋骨、暖肠胃、明目活血、利水解毒的作用,也是润泽肌肤、乌须黑发之佳品。黑豆含有丰富的维生素、蛋黄素、核黄素、黑色素和被称作“生活素”的激素。其中B族维生素(B1、B2)和VE含量很高,仅VE含量相当于肉的7倍以上,对人体的营养保健、防老抗衰、美容养颜,增强精力活力的作用是很大的。
黑豆豉的药用广泛,主治头痛寒热,瘴气恶毒,烦躁胸闷,虚劳喘咳,两脚冷疼,止血痢、治腹痛,治小儿胎毒、头疮等。老年人常食豆豉能有效地预防脑血栓的形成,从而起到强壮血管,保持充卟的脑血流量,防治老年性痴呆的作用。
黑芝麻具有补养肝肾,健脑润肺、养血乌发,坚筋骨,防衰老的作用,是一种常用的滋补佳品。
近代研究证明,黑芝麻含有丰富的油酸、亚油酸,卵磷脂、维生素E和蛋白质及钙、铁等物质。其含油量高达50%以上,尤其是维生素E其偏含量为植物食品之冠。能防止过氧化脂质对人体的危害,抵消或中和细胞内衰老物质“游离基”的积聚,有延缓衰老,延年益寿之功效。此外还有减少血液凝块,防止动脉粥样硬化及冠心病的作用。
黑木耳具有益气补血、凉血止血、润肺镇静、清涤胃肠,乌发美容等功效。
据美国明尼苏达大学医学院汉默斯密特博士认为,黑木耳具有抗血小板凝聚和阻止血液中胆固醇沉积的作用。动脉硬化、高血压、冠心病患者和中老年人常服用,就有减少脑血栓、心肌梗塞的发生和预防中风、冠心病的作用。
黑木耳在补血的同时,又有凉血止血作用,对妇女月经过多和咯血、吐血、血衄、痔疮出血等病人具有标本同治的效果。
黑木耳的胶体吸附力较强,能消化纤维一类物质、吸附肠内残渣,起到清涤胃肠的作用。黑木耳含有核酸及其所含脂类成分中的卵磷脂,经近代科学研究表明具有健美美容、延缓衰老、延长青春的功效。
因此,黑木耳在国内外都深受广大消费者欢迎、享有“素中佳肉”之美誉。
“黑色食品”的兴起,反映人们的营养、保健追求。当然,尽管黑色食品营养丰富,有益于身体,但是,也需要其他色素的食物来调配。诸如白色食物的大米、面粉可以提供蛋白质、热量等;黄色蔬菜中的南瓜、马铃薯,红色蔬菜中的番茄、胡萝卜、红辣椒,绿色蔬菜中的芹菜、菠菜、空心菜、青椒菜,均有着不同的维生素与微量元素,都是人机体所必须的营养物质。因此,在膳食中把各种色彩的食物搭配起来食用,避
免偏食或挑食,使身体内所必须的酸性与碱性食物得以平衡,才有利于健康与延年益寿。
一、猕猴桃的营养价值与保健功能
猕猴桃是一种深受消费者喜爱的水果,其果实细嫩多汁,清香鲜美,酸甜宜人,营养极为丰富。它的维生素C含量高达100-420g/100mg,比柑桔、苹果等水果高几倍甚至几十倍,同时还含大量的糖、蛋白质、氨基酸等多种有机物和人体必需的多种矿物质。据美国Rutgers大学食品研究中心测试,猕猴桃是各种水果中营养成份最丰富、最全面的水果。
◆ 猕猴桃含有优良的膳食纤维和丰富的抗氧化物质,能够起到清热降火、润燥通便的作用,可以有效地预防和治疗便秘和痔疮。
◆ 猕猴桃含有抗突变成分谷胱甘肽,有利于抑制诱发癌症基因的突变,对肝癌、肺癌、皮肤癌、前列腺癌等多种癌细胞病变有一定的抑制作用。
◆ 猕猴桃富含精氨酸,能有效地改善血液流动,阻止血栓的形成,对降低冠心病、高血压、心肌梗塞、动脉硬化等心血管疾病的发病率和治疗阳萎有特别功效。
◆ 猕猕猴桃含有大量的天然糖醇类物质肌醇,能有效地调节糖代谢,调节细胞内的激素和神经的传导效应,对防止糖尿病和抑郁症有独特功效。
◆ 猕猴桃含有Vc、VE、VK等多种维生素,属营养和膳食纤维丰富的低脂肪食品,对减肥健美、美容有独特的功效。
◆ 猕猴桃含有丰富的叶酸,叶酸是构筑健康体魄的必需物质之一,能预防胚胎发育的神经管畸型,为孕妇朋友解除后顾之忧。
◆ 猕猴桃含有丰富的叶黄素,叶黄素在视网模上积累能防止斑点恶化导致永久失明,为白内障朋友实现“千里眼”之梦助一臂之力。
◆ 猕猴桃含有抗氧化物质,能够增强人体的自我免疫功能。
◆ 猕猴桃病虫害少,一般无需使用农药,是极少数没有农药污染的无公害果品之一,这是维护人体健康的最佳保证。
【猕猴桃之历史】猕猴桃(又名杨桃、毛梨桃),为中国原产的珍贵果树。它的栽培史起于1200年前的陕西。唐朝诗人岑参有“中庭井栏上,一架猕猴桃”的诗句。明代李时珍《本草纲目》有:“猕猴桃,其形如梨,其色如桃,而猕猴桃喜食,故有诸名。” 这个古老的植物,改革开放后,周至县是猕猴桃种植面积最大、产量最高、品种最优、管理技术最好、贮藏加工能力最强的“五最”县。为此,国家有关部门专门授予周至县“中国猕猴桃之乡”称号,并为猕猴桃基地颁发了《绿色食品证书》。
【猕猴桃之营养】猕猴桃是一种高营养水果,除含有猕猴桃碱、蛋白水解酶、单宁果胶和糖类等有机物,以及钙、钾、硒、锌、锗等微量元素和人体所需 17种氨基酸外,还含有可溶性固形物10.2-17%,其中糖类占70%,含酸量1.69%。但闻名于世的是维生素C与微量元素硒的高含量,其鲜果的维生素C105.8mg/100g,微量元素硒2.98mg/100g,被称为“营养金矿”、“保健奇果”。
【猕猴桃之鲜果】猕猴桃成熟鲜果手感较硬,喜欢吃味道偏酸的人,可去皮直接食用。硬鲜果放在自然环境,温度10-20摄氏度约15天,若与其它水果混放约5天,果子开始呈现全熟状态,可将果子从中间一切为二,然后用小勺挖果肉食用。优质A级鲜果的滋味是桔子、香蕉、草莓三者之和,另外还有点西瓜味,实在奇妙之至,实为“果中之王”。
【猕猴桃之美食】餐桌上的猕猴桃最先是国宴上的最后一道菜,是将鲜果去皮切片之后,每人食用一两片。猕猴桃作为餐桌上的高档菜,可作成鲜炸、糖汁、醪糟汤等。猕猴桃内有一种酶,可以将肉类变嫩,炒肉时可以加点猕猴桃汁,煮肉时可放几片猕猴桃鲜果,是一种很好做肉预处理料,天然又美味。
【猕猴桃之美容】常食猕猴桃,本身具有减肥健美之功效,洁面后涂上猕猴桃按摩,待猕猴桃颗粒充分熔解吸收,可改善毛孔粗大,美白肌肤。猕猴桃中就含有特别多的果酸,它内含的果酸能抑制角质细胞内聚力及黑色素沉淀,有效地去除或淡化黑斑,并在改善干性或油性肌肤组织上也有显著的功效,可洗脚、手等身体的各个有皮肤病的部位。
【猕猴桃之药疗】猕猴桃的药疗作用,早在唐代名医陈藏器所著《本草拾遗》中记有:“猕猴桃味咸温无毒,可供药用,主治骨节风、瘫痪不遂、长年白发、内痔病……”。宋代《开宝本草》一书中记有“猕猴桃味酸、甘、寒无毒,主消渴、解烦热、冷脾胃动、泄辟、压丹石、下石淋、热雍等多种医疗作用记载。据近代中医学进一步证明,猕猴桃性寒,味甘酸,具有润中理气,生津润燥、解热止渴、利尿通淋的作用,适用于消化不良、食欲不振、便秘、呕吐及维生素缺乏等症。同时医学研究表明,猕猴桃果和汁液,有降低胆固醇及甘油三脂的作用,亦可抑制致癌物质的产生,对高血压、高血脂、肝炎、冠心病、尿道结石有预防和辅助治疗作用。
▲猕猴桃含有一种抗突变成分谷跳甘肽,有利于抑制诱发癌症基因的突变▲猕猴桃中的肌醇作为天然糖醇类物质,对调节糖代谢有正效应,对糖尿病、抑郁症有疗效▲猕猴桃富含植物化学成分叶黄素,叶黄素可在人的视网膜上堆积,这些化合物可以防止斑点恶化及其导致的永久失明,对成年人白内障有抑制作用▲猕猴桃果中含有精氨酸,是一种有效的血管扩张剂被用来改善男性的阳萎。种子中含有亚油酸,有疏通血液的功效。▲新鲜猕猴桃全果,水煎制成浸膏片,每片0.3 克,相当于生药2.2克,每日2~3次,每次4片,可对慢性阻塞性肺气肿患者总有效率74.24%,治疗后冬季急性发作者较治疗前急性发作者明显减少,经统计处理有显著性差异,感冒的发病率也明显减少▲新鲜猕猴桃50克,捣烂加温开水250毫升(约1茶杯),调匀后饮服,能治前列腺炎后小便涩痛。
总之猕猴桃既可用于治疗内、外、妇科疾病,又可用于保健抗衰老,它就像一座奉献给人类的天然药库。
【猕猴桃之禁忌】猕猴桃性寒,不宜多食,脾胃虚寒者应慎食,大便腹泻者不宜食用。先兆性流产、月经过多和尿频者忌食。由于猕猴桃中维生素C含量颇高,易与奶制品中的蛋白质凝结成块,不但影响消化吸收,还会使人出现腹胀、腹痛、腹泻。故食用猕猴桃后一定不要马上喝牛奶或吃其他乳制品。
猕猴桃是一种深受消费者喜爱的水果,其果实细嫩多汁,清香鲜美,酸甜宜人,营养极为丰富。它的维生素C含量高达100-420g/100mg,比柑桔、苹果等水果高几倍甚至几十倍,同时还含大量的糖、蛋白质、氨基酸等多种有机物和人体必需的多种矿物质。据美国Rutgers大学食品研究中心测试,猕猴桃是各种水果中营养成份最丰富、最全面的水果。
◆ 猕猴桃含有优良的膳食纤维和丰富的抗氧化物质,能够起到清热降火、润燥通便的作用,可以有效地预防和治疗便秘和痔疮。
◆ 猕猴桃含有抗突变成分谷胱甘肽,有利于抑制诱发癌症基因的突变,对肝癌、肺癌、皮肤癌、前列腺癌等多种癌细胞病变有一定的抑制作用。
◆ 猕猴桃富含精氨酸,能有效地改善血液流动,阻止血栓的形成,对降低冠心病、高血压、心肌梗塞、动脉硬化等心血管疾病的发病率和治疗阳萎有特别功效。
◆ 猕猕猴桃含有大量的天然糖醇类物质肌醇,能有效地调节糖代谢,调节细胞内的激素和神经的传导效应,对防止糖尿病和抑郁症有独特功效。
◆ 猕猴桃含有Vc、VE、VK等多种维生素,属营养和膳食纤维丰富的低脂肪食品,对减肥健美、美容有独特的功效。
◆ 猕猴桃含有丰富的叶酸,叶酸是构筑健康体魄的必需物质之一,能预防胚胎发育的神经管畸型,为孕妇朋友解除后顾之忧。
◆ 猕猴桃含有丰富的叶黄素,叶黄素在视网模上积累能防止斑点恶化导致永久失明,为白内障朋友实现“千里眼”之梦助一臂之力。
◆ 猕猴桃含有抗氧化物质,能够增强人体的自我免疫功能。
◆ 猕猴桃病虫害少,一般无需使用农药,是极少数没有农药污染的无公害果品之一,这是维护人体健康的最佳保证。
【猕猴桃之历史】猕猴桃(又名杨桃、毛梨桃),为中国原产的珍贵果树。它的栽培史起于1200年前的陕西。唐朝诗人岑参有“中庭井栏上,一架猕猴桃”的诗句。明代李时珍《本草纲目》有:“猕猴桃,其形如梨,其色如桃,而猕猴桃喜食,故有诸名。” 这个古老的植物,改革开放后,周至县是猕猴桃种植面积最大、产量最高、品种最优、管理技术最好、贮藏加工能力最强的“五最”县。为此,国家有关部门专门授予周至县“中国猕猴桃之乡”称号,并为猕猴桃基地颁发了《绿色食品证书》。
【猕猴桃之营养】猕猴桃是一种高营养水果,除含有猕猴桃碱、蛋白水解酶、单宁果胶和糖类等有机物,以及钙、钾、硒、锌、锗等微量元素和人体所需 17种氨基酸外,还含有可溶性固形物10.2-17%,其中糖类占70%,含酸量1.69%。但闻名于世的是维生素C与微量元素硒的高含量,其鲜果的维生素C105.8mg/100g,微量元素硒2.98mg/100g,被称为“营养金矿”、“保健奇果”。
【猕猴桃之鲜果】猕猴桃成熟鲜果手感较硬,喜欢吃味道偏酸的人,可去皮直接食用。硬鲜果放在自然环境,温度10-20摄氏度约15天,若与其它水果混放约5天,果子开始呈现全熟状态,可将果子从中间一切为二,然后用小勺挖果肉食用。优质A级鲜果的滋味是桔子、香蕉、草莓三者之和,另外还有点西瓜味,实在奇妙之至,实为“果中之王”。
【猕猴桃之美食】餐桌上的猕猴桃最先是国宴上的最后一道菜,是将鲜果去皮切片之后,每人食用一两片。猕猴桃作为餐桌上的高档菜,可作成鲜炸、糖汁、醪糟汤等。猕猴桃内有一种酶,可以将肉类变嫩,炒肉时可以加点猕猴桃汁,煮肉时可放几片猕猴桃鲜果,是一种很好做肉预处理料,天然又美味。
【猕猴桃之美容】常食猕猴桃,本身具有减肥健美之功效,洁面后涂上猕猴桃按摩,待猕猴桃颗粒充分熔解吸收,可改善毛孔粗大,美白肌肤。猕猴桃中就含有特别多的果酸,它内含的果酸能抑制角质细胞内聚力及黑色素沉淀,有效地去除或淡化黑斑,并在改善干性或油性肌肤组织上也有显著的功效,可洗脚、手等身体的各个有皮肤病的部位。
【猕猴桃之药疗】猕猴桃的药疗作用,早在唐代名医陈藏器所著《本草拾遗》中记有:“猕猴桃味咸温无毒,可供药用,主治骨节风、瘫痪不遂、长年白发、内痔病……”。宋代《开宝本草》一书中记有“猕猴桃味酸、甘、寒无毒,主消渴、解烦热、冷脾胃动、泄辟、压丹石、下石淋、热雍等多种医疗作用记载。据近代中医学进一步证明,猕猴桃性寒,味甘酸,具有润中理气,生津润燥、解热止渴、利尿通淋的作用,适用于消化不良、食欲不振、便秘、呕吐及维生素缺乏等症。同时医学研究表明,猕猴桃果和汁液,有降低胆固醇及甘油三脂的作用,亦可抑制致癌物质的产生,对高血压、高血脂、肝炎、冠心病、尿道结石有预防和辅助治疗作用。
▲猕猴桃含有一种抗突变成分谷跳甘肽,有利于抑制诱发癌症基因的突变▲猕猴桃中的肌醇作为天然糖醇类物质,对调节糖代谢有正效应,对糖尿病、抑郁症有疗效▲猕猴桃富含植物化学成分叶黄素,叶黄素可在人的视网膜上堆积,这些化合物可以防止斑点恶化及其导致的永久失明,对成年人白内障有抑制作用▲猕猴桃果中含有精氨酸,是一种有效的血管扩张剂被用来改善男性的阳萎。种子中含有亚油酸,有疏通血液的功效。▲新鲜猕猴桃全果,水煎制成浸膏片,每片0.3 克,相当于生药2.2克,每日2~3次,每次4片,可对慢性阻塞性肺气肿患者总有效率74.24%,治疗后冬季急性发作者较治疗前急性发作者明显减少,经统计处理有显著性差异,感冒的发病率也明显减少▲新鲜猕猴桃50克,捣烂加温开水250毫升(约1茶杯),调匀后饮服,能治前列腺炎后小便涩痛。
总之猕猴桃既可用于治疗内、外、妇科疾病,又可用于保健抗衰老,它就像一座奉献给人类的天然药库。
【猕猴桃之禁忌】猕猴桃性寒,不宜多食,脾胃虚寒者应慎食,大便腹泻者不宜食用。先兆性流产、月经过多和尿频者忌食。由于猕猴桃中维生素C含量颇高,易与奶制品中的蛋白质凝结成块,不但影响消化吸收,还会使人出现腹胀、腹痛、腹泻。故食用猕猴桃后一定不要马上喝牛奶或吃其他乳制品。
其实任何东西都要适可而止,不可以贪吃多吃,另外还要注意以下内容:
在这个世界上柿子共有上千个品种,又根据其在树上成熟前能否自然脱涩分为涩柿和甜柿两类。其中的涩柿(我国上市的柿子大多数属于此类)必须在采摘后先经人工脱涩后方可供食用,引起涩柿涩味的物质基础是鞣酸,(又称单宁酸)。柿子中含碳水化合物很多,每100克柿子中含10.8克,其中主要是蔗糖、葡萄糖及果糖,这也是大家感到柿子很甜的原因。柿子中的其他营养成分则不多,只含有少量的脂肪、蛋白质、钙、磷、铁和维生素C等。另外,柿子富含果胶,它是一种水溶性的膳食纤维,有良好的润肠通便作用,对于纠正便秘,保持肠道正常菌群生长等有很好的作用。
中医认为,柿子味甘、涩,性寒,有清热去燥、润肺化痰、软坚、止渴生津、健脾、治痢、止血等功能,可以缓解大便干结、痔疮疼痛或出血、干咳、喉痛、高血压等症。所以,柿子是慢性支气管炎、高血压、动脉硬化、内外痔疮患者的天然保健食品。如果用柿子叶子煎服或冲开水当茶饮,也有促进机体新陈代谢、降低血压、增加冠状动脉血流量及镇咳化痰的作用。
吃柿子虽然有很多好处,但有几点需要提醒:
现在市场上有一些看上去很诱人的、红红的柿子,但吃起来一点也不甜,它们很可能是用激素催熟的。因为从外表上很难区别,所以建议你先买一个尝尝,再决定是否需买更多。
在这个世界上柿子共有上千个品种,又根据其在树上成熟前能否自然脱涩分为涩柿和甜柿两类。其中的涩柿(我国上市的柿子大多数属于此类)必须在采摘后先经人工脱涩后方可供食用,引起涩柿涩味的物质基础是鞣酸,(又称单宁酸)。柿子中含碳水化合物很多,每100克柿子中含10.8克,其中主要是蔗糖、葡萄糖及果糖,这也是大家感到柿子很甜的原因。柿子中的其他营养成分则不多,只含有少量的脂肪、蛋白质、钙、磷、铁和维生素C等。另外,柿子富含果胶,它是一种水溶性的膳食纤维,有良好的润肠通便作用,对于纠正便秘,保持肠道正常菌群生长等有很好的作用。
中医认为,柿子味甘、涩,性寒,有清热去燥、润肺化痰、软坚、止渴生津、健脾、治痢、止血等功能,可以缓解大便干结、痔疮疼痛或出血、干咳、喉痛、高血压等症。所以,柿子是慢性支气管炎、高血压、动脉硬化、内外痔疮患者的天然保健食品。如果用柿子叶子煎服或冲开水当茶饮,也有促进机体新陈代谢、降低血压、增加冠状动脉血流量及镇咳化痰的作用。
吃柿子虽然有很多好处,但有几点需要提醒:
引用
空腹不能吃柿子
因柿子含有较多的鞣酸及果胶,在空腹情况下它们会在胃酸的作用下形成大小不等的硬块,如果这些硬块不能通过幽门到达小肠,就会滞留在胃中形成胃柿石,小的胃柿石最初如杏子核,但会愈积愈大。如果胃柿石无法自然被排出,那么就会造成消化道梗阻,出现上腹部剧烈疼痛、呕吐、甚至呕血等症状,曾在手术中发现大如拳头的胃柿石。如果胃“有底”的话,就可避免胃柿石的形成。
因柿子含有较多的鞣酸及果胶,在空腹情况下它们会在胃酸的作用下形成大小不等的硬块,如果这些硬块不能通过幽门到达小肠,就会滞留在胃中形成胃柿石,小的胃柿石最初如杏子核,但会愈积愈大。如果胃柿石无法自然被排出,那么就会造成消化道梗阻,出现上腹部剧烈疼痛、呕吐、甚至呕血等症状,曾在手术中发现大如拳头的胃柿石。如果胃“有底”的话,就可避免胃柿石的形成。
引用
柿子皮不能吃
有的人感到吃柿子的同时咀嚼柿子皮比单吃柿子更有味道,其实这种吃法是不科学的。因为柿子中的鞣酸绝大多数集中在皮中,在柿子脱涩时,不可能将其中的鞣酸全部脱尽,如果连皮一起吃更容易形成胃柿石,尤其是脱涩工艺不完善时,其皮中含的鞣酸更多。
有的人感到吃柿子的同时咀嚼柿子皮比单吃柿子更有味道,其实这种吃法是不科学的。因为柿子中的鞣酸绝大多数集中在皮中,在柿子脱涩时,不可能将其中的鞣酸全部脱尽,如果连皮一起吃更容易形成胃柿石,尤其是脱涩工艺不完善时,其皮中含的鞣酸更多。
引用
不要与含高蛋白的蟹、鱼、虾等食品一起吃
中医学中,螃蟹与柿子都属寒性食物,故而不能同食。从现代医学的角度来看,含高蛋白的蟹、鱼、虾在鞣酸的作用下,很易凝固成块,即胃柿石。
糖尿病人勿食柿子中因含10.8%的糖类,且大多是简单的双糖和单糖(蔗糖、果糖、葡萄糖即属此类),因此吃后很易被吸收,使血糖升高。对于糖尿病人而言,尤其是血糖控制不佳者更是有害的。
中医学中,螃蟹与柿子都属寒性食物,故而不能同食。从现代医学的角度来看,含高蛋白的蟹、鱼、虾在鞣酸的作用下,很易凝固成块,即胃柿石。
糖尿病人勿食柿子中因含10.8%的糖类,且大多是简单的双糖和单糖(蔗糖、果糖、葡萄糖即属此类),因此吃后很易被吸收,使血糖升高。对于糖尿病人而言,尤其是血糖控制不佳者更是有害的。
引用
适可而止
柿子中的鞣酸能与食物中的钙、锌、镁、铁等矿物质形成不能被人体吸收的化合物,使这些营养素不能被利用,故而多吃柿子容易导致这些矿物质缺乏。又因为柿子中含糖较多,所以人们吃柿子比吃同样数量的苹果、生梨更有饱腹感,从而会影响食欲,并减少正餐的摄入。一般认为,不在空腹的情况下,每次吃柿子不超过200克为宜。
柿子中的鞣酸能与食物中的钙、锌、镁、铁等矿物质形成不能被人体吸收的化合物,使这些营养素不能被利用,故而多吃柿子容易导致这些矿物质缺乏。又因为柿子中含糖较多,所以人们吃柿子比吃同样数量的苹果、生梨更有饱腹感,从而会影响食欲,并减少正餐的摄入。一般认为,不在空腹的情况下,每次吃柿子不超过200克为宜。
引用
吃后漱口
柿子含糖高,且含果胶,吃柿子后总有一部分留在口腔里,特别是在牙缝中,加上弱酸性的鞣酸,很易对牙齿造成侵蚀,形成龋齿,故而在吃柿子后宜喝几口水,或及时漱口。
柿子含糖高,且含果胶,吃柿子后总有一部分留在口腔里,特别是在牙缝中,加上弱酸性的鞣酸,很易对牙齿造成侵蚀,形成龋齿,故而在吃柿子后宜喝几口水,或及时漱口。
现在市场上有一些看上去很诱人的、红红的柿子,但吃起来一点也不甜,它们很可能是用激素催熟的。因为从外表上很难区别,所以建议你先买一个尝尝,再决定是否需买更多。
PHP5 中的对象已经进行了较系统、较全面的调整,现在的样子可能看起来会有些类似于 Java。本小节着重讲述 PHP5 中新的对象模式,并举了一些较简易的例子来说明。就让本节成为你的 PHP5 之旅的一个新起点吧。:)
* 构造函数和析构函数
* 对象的引用
* 对象的克隆
* 对象中的私有、公共及受保护模式
* 接口 (Interfaces)
* 抽象类
* __call
* __set 和 __get
* 静态成员
构造函数和析构函数
在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。
在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。
例一:构造函数和析构函数
class foo {
var $x;
function __construct($x) {
$this->x = $x;
}
function display() {
print($this->x);
}
function __destruct() {
print("bye bye");
}
}
$o1 = new foo(4);
$o1->display();
?>
在上面的例子中,当你终止调用 foo 类的时候,其析构函数将会被调用,上例中会输出 “bye bye”。
对象的引用
众所周知,在PHP4 中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号 “&” 来声明是要做一个引用,而不是一个 Copy。在 PHP5 中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。
例二:对象的引用
class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1;
$o1->setX(5);
if($o1->getX() == $o2->getX()) print("Oh my god!");
?>
对象的克隆
如上所述,当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。
例三:对象的克隆
class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1->__clone();
$o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant");
?>
对象克隆的方法在其它很多应用程序语言中都是存在的,所以你不必担心它的稳定性。:)
对象中的私有、公共及保护模式
PHP4 中,一个对象的所有方法和变量都是公共的,这意味着你可以在一个对象的外部操作其中的任意一个变量和方法。PHP5 引入了三种新的用来控制这种存取权限的模式,它们是:公共的(Public)、受保护的(Protected)及私有的(Private)。
公共模式(Public):允许在对象外部进行操作控制。
私有模式(Private):只允许本对象内的方法对其进行操作控制。
受保护模式(Protected):允许本对象及其父对象对其进行操作控制。
例四: 对象中的私有、公共及受保护模式
class foo {
private $x;
public function public_foo() {
print("I'm public");
}
protected function protected_foo() {
$this->private_foo(); //Ok because we are in the same class we can call private methods
print("I'm protected");
}
private function private_foo() {
$this->x = 3;
print("I'm private");
}
}
class foo2 extends foo {
public function display() {
$this->protected_foo();
$this->public_foo();
// $this->private_foo(); // Invalid! the function is private in the base class
}
} $x = new foo();
$x->public_foo();
//$x->protected_foo(); //Invalid cannot call protected methods outside the class and derived classes
//$x->private_foo(); //Invalid private methods can only be used inside the class $x2 = new foo2();
$x2->display();
?>
提示:对象中的变量总是以私有形式存在的,直接操作一个对象中的变量不是一个好的面向对象编程的习惯,更好的办法是把你想要的变量交给一个对象的方法去处理。
接口 (Interfaces)
众所周知,PHP4 中的对象支持继承,要使一个对象成为另一个对象的派生类,你需要使用类似 “class foo extends parent” 的代码来控制。 PHP4 和 PHP5 中,一个对象都仅能继承一次,多重继承是不被支持的。不过,在 PHP5 中产生了一个新的名词:接口,接口是一个没有具体处理代码的特殊对象,它仅仅定义了一些方法的名称及参数,此后的对象就可以方便的使用 'implement' 关键字把需要的接口整合起来,然后再加入具体的执行代码。
例五:接口
interface displayable {
function display();
}
interface printable {
function doprint();
}
class foo implements displayable,printable {
function display() {
// code
} function doprint() {
// code
}
}
?>
这对提高代码的可读性及通俗性有很大的帮助,通过上面的例子可以看到,对象 foo 包含了 displayable 和 printable 两个接口,这时我们就可以清楚的知道,对象 foo 一定会有一个 display() 方法和一个 print() 方法,只需要去了解接口部分,你就可以轻易的操作该对象而不必去关心对象的内部是如何运作的。
抽象类
抽象类不能被实例化。
抽象类与其它类一样,允许定义变量及方法。
抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。
例六:抽象类
abstract class foo {
protected $x;
abstract function display();
function setX($x) {
$this->x = $x;
}
}
class foo2 extends foo {
function display() {
// Code
}
}
?>
__call
PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。
例七:__call
class foo {
function __call($name,$arguments) {
print("Did you call me? I'm $name!");
}
} $x = new foo();
$x->doStuff();
$x->fancy_stuff();
?>
这个特殊的方法可以被用来实现“过载(overloading)”的动作,这样你就可以检查你的参数并且通过调用一个私有的方法来传递参数。
例八:使用 __call 实现“过载”动作
class Magic {
function __call($name,$arguments) {
if($name=='foo') {
if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
}
} private function foo_for_int($x) {
print("oh an int!");
} private function foo_for_string($x) {
print("oh a string!");
}
} $x = new Magic();
$x->foo(3);
$x->foo("3");
?>
__set 和 __get
这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。
例九: __set 和 __get
class foo {
function __set($name,$val) {
print("Hello, you tried to put $val in $name");
}
function __get($name) {
print("Hey you asked for $name");
}
}
$x = new foo();
$x->bar = 3;
print($x->winky_winky);
?>
类型指示
在 PHP5 中,你可以在对象的方法中指明其参数必须为另一个对象的实例。
例十:类型指示
class foo {
// code ...
}
class bar {
public function process_a_foo(foo $foo) {
// Some code
}
}
$b = new bar();
$f = new foo();
$b->process_a_foo($f);
?>
可以看出,我们可以显性的在参数前指明一个对象的名称,PHP5 会识别出这个参数将会要是一个对象实例。
静态成员
静态成员和静态方法在面象对象编程的术语中被称作 “对象方法(class methods)” 和 “对象变量(class variables)”。
“对象方法” 在一个对象没有实例化前允许被调用。同样,“对象变量” 在一个对象没有实例化前可以被独立操作控制(不需要用一个对象的方法来控制)。
例十一:对象方法和对象变量
class calculator {
static public $pi = 3.14151692;
static public function add($x,$y) {
return $x + $y;
}
}
$s = calculator::$pi;
$result = calculator::add(3,7);
print("$result");
?>
异常处理
异常处理是公认的处理程序错误的理想方法,在 Java 及 C++ 中都有这个概念,我们欣喜的看到,在 PHP5 已经加入了这方面的应用。你可以尝试使用 “try” 和 “catch” 来控制程序的错误。
例十二:异常处理
class foo {
function divide($x,$y) {
if($y==0) throw new Exception("cannot divide by zero");
return $x/$y;
}
}
$x = new foo();
try {
$x->divide(3,0);
} catch (Exception $e) {
echo $e->getMessage();
echo "n
n";
// Some catastrophic measure here
}
?>
上例中,我们使用了 “try” 来执行花括号中的语句,当有错误发生的时候,代码会把错误交给 “catch” 子句来处理,在 “catch” 子句中,你需要指明要把错误交给某个对象处理,这样做可以使代码结构看起来更清晰,因为现在我们可以把所有的错误信息交给一个对象来处理。
自定义错误处理
你可以很方便的用自定义的处理错误的代码来控制你的程序中的意外。你仅仅需要从异常类中派生出一个自己的错误控制类,在你自己的错误控制类中,你需要有一个构造函数和一个 getMessage 方法,以下是一个例子。
例十三:自定义错误处理
class WeirdProblem extends Exception {
private $data;
function WeirdProblem($data) {
parent::exception();
$this->data = $data;
}
function getMessage() {
return $this->data . " caused a weird exception!";
}
}
?>
现在我们可以使用 “throw new WeirdProblem($foo)” 来抛出一个错误句柄,如果错误在 “try” 的代码块中发生,PHP5 会自动把错误交给 “catch” 部分来处理。
名称空间
名称空间对类的分组或函数分组很有用。它可以把一些相关的类或函数给组合到一起,方便以后调用。
例十四:名称空间
namespace Math {
class Complex {
//...code...
function __construct() {
print("hey");
}
}
} $m = new Math::Complex();
?>
注意你需要在何种情况下使用名称空间,在实际运用中,你可能会需要声明两个或多个名称一样的对象来做不同的事情,那么你就可以把他们分别放到不同的名称空间中去(但接口是要相同的)。
* 构造函数和析构函数
* 对象的引用
* 对象的克隆
* 对象中的私有、公共及受保护模式
* 接口 (Interfaces)
* 抽象类
* __call
* __set 和 __get
* 静态成员
构造函数和析构函数
在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。
在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。
例一:构造函数和析构函数
class foo {
var $x;
function __construct($x) {
$this->x = $x;
}
function display() {
print($this->x);
}
function __destruct() {
print("bye bye");
}
}
$o1 = new foo(4);
$o1->display();
?>
在上面的例子中,当你终止调用 foo 类的时候,其析构函数将会被调用,上例中会输出 “bye bye”。
对象的引用
众所周知,在PHP4 中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号 “&” 来声明是要做一个引用,而不是一个 Copy。在 PHP5 中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。
例二:对象的引用
class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1;
$o1->setX(5);
if($o1->getX() == $o2->getX()) print("Oh my god!");
?>
对象的克隆
如上所述,当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。
例三:对象的克隆
class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1->__clone();
$o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant");
?>
对象克隆的方法在其它很多应用程序语言中都是存在的,所以你不必担心它的稳定性。:)
对象中的私有、公共及保护模式
PHP4 中,一个对象的所有方法和变量都是公共的,这意味着你可以在一个对象的外部操作其中的任意一个变量和方法。PHP5 引入了三种新的用来控制这种存取权限的模式,它们是:公共的(Public)、受保护的(Protected)及私有的(Private)。
公共模式(Public):允许在对象外部进行操作控制。
私有模式(Private):只允许本对象内的方法对其进行操作控制。
受保护模式(Protected):允许本对象及其父对象对其进行操作控制。
例四: 对象中的私有、公共及受保护模式
class foo {
private $x;
public function public_foo() {
print("I'm public");
}
protected function protected_foo() {
$this->private_foo(); //Ok because we are in the same class we can call private methods
print("I'm protected");
}
private function private_foo() {
$this->x = 3;
print("I'm private");
}
}
class foo2 extends foo {
public function display() {
$this->protected_foo();
$this->public_foo();
// $this->private_foo(); // Invalid! the function is private in the base class
}
} $x = new foo();
$x->public_foo();
//$x->protected_foo(); //Invalid cannot call protected methods outside the class and derived classes
//$x->private_foo(); //Invalid private methods can only be used inside the class $x2 = new foo2();
$x2->display();
?>
提示:对象中的变量总是以私有形式存在的,直接操作一个对象中的变量不是一个好的面向对象编程的习惯,更好的办法是把你想要的变量交给一个对象的方法去处理。
接口 (Interfaces)
众所周知,PHP4 中的对象支持继承,要使一个对象成为另一个对象的派生类,你需要使用类似 “class foo extends parent” 的代码来控制。 PHP4 和 PHP5 中,一个对象都仅能继承一次,多重继承是不被支持的。不过,在 PHP5 中产生了一个新的名词:接口,接口是一个没有具体处理代码的特殊对象,它仅仅定义了一些方法的名称及参数,此后的对象就可以方便的使用 'implement' 关键字把需要的接口整合起来,然后再加入具体的执行代码。
例五:接口
interface displayable {
function display();
}
interface printable {
function doprint();
}
class foo implements displayable,printable {
function display() {
// code
} function doprint() {
// code
}
}
?>
这对提高代码的可读性及通俗性有很大的帮助,通过上面的例子可以看到,对象 foo 包含了 displayable 和 printable 两个接口,这时我们就可以清楚的知道,对象 foo 一定会有一个 display() 方法和一个 print() 方法,只需要去了解接口部分,你就可以轻易的操作该对象而不必去关心对象的内部是如何运作的。
抽象类
抽象类不能被实例化。
抽象类与其它类一样,允许定义变量及方法。
抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。
例六:抽象类
abstract class foo {
protected $x;
abstract function display();
function setX($x) {
$this->x = $x;
}
}
class foo2 extends foo {
function display() {
// Code
}
}
?>
__call
PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。
例七:__call
class foo {
function __call($name,$arguments) {
print("Did you call me? I'm $name!");
}
} $x = new foo();
$x->doStuff();
$x->fancy_stuff();
?>
这个特殊的方法可以被用来实现“过载(overloading)”的动作,这样你就可以检查你的参数并且通过调用一个私有的方法来传递参数。
例八:使用 __call 实现“过载”动作
class Magic {
function __call($name,$arguments) {
if($name=='foo') {
if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
}
} private function foo_for_int($x) {
print("oh an int!");
} private function foo_for_string($x) {
print("oh a string!");
}
} $x = new Magic();
$x->foo(3);
$x->foo("3");
?>
__set 和 __get
这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。
例九: __set 和 __get
class foo {
function __set($name,$val) {
print("Hello, you tried to put $val in $name");
}
function __get($name) {
print("Hey you asked for $name");
}
}
$x = new foo();
$x->bar = 3;
print($x->winky_winky);
?>
类型指示
在 PHP5 中,你可以在对象的方法中指明其参数必须为另一个对象的实例。
例十:类型指示
class foo {
// code ...
}
class bar {
public function process_a_foo(foo $foo) {
// Some code
}
}
$b = new bar();
$f = new foo();
$b->process_a_foo($f);
?>
可以看出,我们可以显性的在参数前指明一个对象的名称,PHP5 会识别出这个参数将会要是一个对象实例。
静态成员
静态成员和静态方法在面象对象编程的术语中被称作 “对象方法(class methods)” 和 “对象变量(class variables)”。
“对象方法” 在一个对象没有实例化前允许被调用。同样,“对象变量” 在一个对象没有实例化前可以被独立操作控制(不需要用一个对象的方法来控制)。
例十一:对象方法和对象变量
class calculator {
static public $pi = 3.14151692;
static public function add($x,$y) {
return $x + $y;
}
}
$s = calculator::$pi;
$result = calculator::add(3,7);
print("$result");
?>
异常处理
异常处理是公认的处理程序错误的理想方法,在 Java 及 C++ 中都有这个概念,我们欣喜的看到,在 PHP5 已经加入了这方面的应用。你可以尝试使用 “try” 和 “catch” 来控制程序的错误。
例十二:异常处理
class foo {
function divide($x,$y) {
if($y==0) throw new Exception("cannot divide by zero");
return $x/$y;
}
}
$x = new foo();
try {
$x->divide(3,0);
} catch (Exception $e) {
echo $e->getMessage();
echo "n
n";
// Some catastrophic measure here
}
?>
上例中,我们使用了 “try” 来执行花括号中的语句,当有错误发生的时候,代码会把错误交给 “catch” 子句来处理,在 “catch” 子句中,你需要指明要把错误交给某个对象处理,这样做可以使代码结构看起来更清晰,因为现在我们可以把所有的错误信息交给一个对象来处理。
自定义错误处理
你可以很方便的用自定义的处理错误的代码来控制你的程序中的意外。你仅仅需要从异常类中派生出一个自己的错误控制类,在你自己的错误控制类中,你需要有一个构造函数和一个 getMessage 方法,以下是一个例子。
例十三:自定义错误处理
class WeirdProblem extends Exception {
private $data;
function WeirdProblem($data) {
parent::exception();
$this->data = $data;
}
function getMessage() {
return $this->data . " caused a weird exception!";
}
}
?>
现在我们可以使用 “throw new WeirdProblem($foo)” 来抛出一个错误句柄,如果错误在 “try” 的代码块中发生,PHP5 会自动把错误交给 “catch” 部分来处理。
名称空间
名称空间对类的分组或函数分组很有用。它可以把一些相关的类或函数给组合到一起,方便以后调用。
例十四:名称空间
namespace Math {
class Complex {
//...code...
function __construct() {
print("hey");
}
}
} $m = new Math::Complex();
?>
注意你需要在何种情况下使用名称空间,在实际运用中,你可能会需要声明两个或多个名称一样的对象来做不同的事情,那么你就可以把他们分别放到不同的名称空间中去(但接口是要相同的)。
正则表达式类
【1】 正则表达式应用——替换指定内容到行尾
【2】 正则表达式应用——数字替换----------------------------Microshaoft@CCF,jiuk2k@CCF
【3】 正则表达式应用——删除每一行行尾的指定字符
【4】 正则表达式应用——替换带有半角括号的多行
【5】 正则表达式应用——删除空行----------------------------江德华
软件技巧类
------------------------------------------------------
【6】 软件技巧——键盘记录的注意事项
【7】 软件技巧——关闭文档标签的便捷方法
【8】 软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示?
【9】 软件技巧——提示找不到语法文件的解决办法
【10】软件技巧——设置editplus支持其它文字,如韩文----------jackywu1978@LJF
【11】软件技巧——FTP 上传的设置----------------------------李应文2.11汉化版
【12】软件技巧——如何禁用备份文件功能?
【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件
工具集成类
------------------------------------------------------
【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis、C#)
【15】工具集成——让Editplus调试PHP程序----------------------avenger,aukw@CCF
【16】工具集成——打造 PHP 调试环境(二)----------------------老七2.11汉化版
【17】在 WINPE 中集成 EDITPLUS
后续添加
------------------------------------------------------
【18】支持带UTF-8标记/不带UTF-8标记的文件
每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。
【1】正则表达式应用——替换指定内容到行尾
原始文本如下面两行
abc aaaaa
123 abc 444
希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg
解决:
① 在替换对话框,查找内容里输入“abc.*”
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多
注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。
【2】正则表达式应用——数字替换 (Microshaoft@CCF,jiuk2k@CCF)
希望把
asdadas123asdasdas456asdasdasd789asdasd
替换为:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd
在替换对话框里面,勾选“正则表达式”复选框;
在查找内容里面输入“[0-9][0-9][0-9]”,不含引号
“替换为:”里面输入“[\0\1\2]”,不含引号
范围为你所操作的范围,然后选择替换即可。
实际上这也是正则表达式的使用特例,“[0-9]”表示匹配0~9之间的任何特例,同样“[a-z]”就表示匹配a~z之间的任何特例
上面重复使用了“[0-9]”,表示连续出现的三个数字
“\0”代表第一个“[0-9]”对应的原型,“\1”代表第二个“[0-9]”对应的原型,依此类推
“[”、“]”为单纯的字符,表示添加“[”或“]”,如果输入“其它\0\1\2其它”,则替换结果为:
asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd
功能增强(by jiuk2k@CCF):
如果将查找内容“[0-9][0-9][0-9]”改为“[0-9]*[0-9]”,对应1 或 123 或 12345 或 ...
大家根据需要定制
相关内容还有很多,可以自己参考正则表达式的语法仔细研究一下
【3】正则表达式应用——删除每一行行尾的指定字符
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现
比如
12345 1265345
2345
需要删除每行末尾的“345”
这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下
解决:
在替换对话框中,启用“正则表达式”复选框
在查找内容里面输入“345$”
这里“$”表示从行尾匹配
如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串
a. 选择要操作的行
b. 编辑-格式-删除行注释
c. 在弹出对话框里面输入要清除的行首字符,确定
【4】正则表达式应用——替换带有半角括号的多行
几百个网页中都有下面一段代码:
我想把它们都去掉,可是找了很多search & replace的软件,都是只能对“一行”进行操作。
EditPlus 打开几百个网页文件还是比较顺畅的,所以完全可以胜任这个工作。
具体解决方法,在 Editplus 中使用正则表达式,由于“(”、“)”被用做预设表达式(或者可以称作子表达式)的标志,所以查找
“\n”
时会提示查找不到,所以也就无法进行替换了,这时可以把“(”、“)”使用任意字符标记替代,即半角句号:“.”。替换内容为
\n
在替换对话框启用“正则表达式”选项,这时就可以完成替换了
补充:(lucida@DRL)
对( ) 这样的特殊符号,应该用\( \)来表示,这也是很标准的regexp语法,可以写为
\n
【5】正则表达式应用——删除空行
启动EditPlus,打开待处理的文本类型文件。
①、选择“查找”菜单的“替换”命令,弹出文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“替换范围”中的“当前文件”,表明对当前文件操作。
②、单击“查找内容”组合框右侧的按钮,出现下拉菜单。
③、下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。
直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有空格符。
(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。
(2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。
(3)按一下空格键,添加空格符。空格符是空行的一个组成成分。
(4)选择“制表符”,添加代表制表符的“\t”。
(5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出现0个或多个。
(6)选择“换行符”,插入“\n”,表示回车符。
④、“替换为”组合框保持空,表示删除查找到的内容。单击“替换”按钮逐个行删除空行,或单击“全部替换”按钮删除全部空行(注意:EditPlus有时存在“全部替换”不能一次性完全删除空行的问题,可能是程序BUG,需要多按几次按钮)。
【6】软件技巧——键盘记录的注意事项
EditPlus 的键盘记录有些类似于 UltraEdit 的宏操作,不过功能相对单一,录制的文件可编辑性较差。
由于基本无法编辑录制的文件,所以录制的时候为了避免录制失败,推荐纯粹使用键盘操作,以下是比较关键的几个键盘组合:
Ctrl+F = 调出查找对话框
Ctrl+H = 调出替换对话框
Alt+F4 = 关闭作用,比如,关闭查找对话框、关闭替换对话框,等等
其它键盘快捷键在“帮助-快捷键列表”里面可以很容易的查找到,这里就不细说了。
【7】软件技巧——关闭文档标签的便捷方法
右键单击文档标签工具条,弹出菜单中选择“标签选项”,选中“用鼠标中间的按钮关闭”,这里包括鼠标的滚轮。
【8】软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示?
如果你使用 EditPlus 进行文本编辑,那么每次创建文本文件,编辑后保存时,尽管文件类型下拉列表中显示的是文本文件, EditPlus 还是询问你是否添加".txt"后缀,是不是很烦?
解决方法:
① 在程序目录建立一个空的文件“template.txt”
② “工具-参数设置-模板”里面,单击“添加”按钮添加模板,“菜单文本”这里输入“Text”,浏览“template.txt”,之后确定即可
③ “文件-新建-text”,就可以建立一个空的文本文件,保存时,这个文件自动带有扩展名".txt",也就避免了令人头疼的确认
④ 模板设置文件名称为“template.ini”,如果和主程序同一路径,可以使用相对路径
罗嗦了点,不过管用
要自动创建带有某种后缀的文件,方法同上。
【9】软件技巧——提示找不到语法文件 *.stx 的解决办法
原因多为设置的语法文件不存在或者是路径设置不对。这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。
解决办法:
在主程序目录里,找到 Setting.ini 这是 EditPlus 存放语法的文件
查找后缀为“.stx”、“acp”的文本内容,或者查找带有驱动器符号的行,比如
Syntax file=C:\Program Files\EditPlus 2\cpp.stx
那么,就把”C:\Program Files\EditPlus 2\“替换成你当前软件的路径。
其它提示找不到文件的解决方法同上
【10】软件技巧——设置editplus支持其它文字,如韩文
在editplus里打开文件,出来打开文件对话框;然后点击“转换器”后面的那个省略号,会出来自定义转换器对话框;在右边选择你需要的编码方式,添加到左边,然后点确定;最后在下拉框中选择需要的编码方式,然后打开文件即可。
【11】软件技巧——FTP 上传的设置
“文件->远程操作->FTP 上传”在“设置”选项卡中设置好参数(“子目录”前面应该加“/”如“/web/”),点击“确定”回到“FTP 上传”选项卡,然后点击“上传”即可;“批量上传”的设置类似。
【12】软件技巧——如何禁用备份文件功能?
在“参数选择”的文件选项页,禁用“'保存时自动创建备份文件”选项
【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件
要添加 *.STX(语法文件)或 *.ACP(自动完成文件):
1. 选择“参数选择→语法”
2. 单击“添加”按钮,命名,在“扩展名”部分输入对应扩展名(不带“.”)
3. 浏览/输入 STX(语法文件部分) 以及 ACP(自动完成文件部分)。
添加剪辑库文件(*.CTL)
复制相应 *.CTL 文件到软件安装目录,重新启动 EditPlus ,则系统自动识别。
作者主页有很多语法自动完成文件下载,地址
http://editplus.com/files.html
【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis)
在“工具→参数选择→用户工具”选项页设置,设置步骤
① 设置组名称,这里也可以不设置
② 单击“添加工具→应用程序”按钮并进行如下设置
③ 各种类似"$(FilePath)"的参数可以在文本框右侧的箭头下拉菜单中获取,具体含义如下
参数 描述
$(FilePath) 文件路径(文件全名,含目录和文件名)
$(FileDir) 文件目录(不带文件名)
$(FileName) 文件名(不带目录)
$(FileNameNoExt) 不带扩展名的文件名(不带目录)
$(FileExt) 扩展名(当前文件)
$(ProjectName) 工程名称(当前工程名)
$(CurLine) 当前行号(光标位置处的行号)
$(CurCol) 当前列号(光标位置处的列号)
$(CurSel) 当前文本(插入当前选定文本)
$(CurWord) 当前单词(插入当前单词)
$(WindowList) 显示当前窗口列表并选择特定文件
例子 1. Java 编译器
菜单文本:Java 编译器
命令:c:\java\bin\javac.exe
参数:"$(FilePath)"
初始目录:$(FileDir)
捕获输出:开启
要运行已编译的 Java 类文件,你可以进行如下设置:
菜单文本:Java
命令:c:\java\bin\java.exe
参数:$(FileNameNoExt)
初始目录:$(FileDir)
“命令”部分应当替换为实际的 Java 解释器的路径。
例子 2. Borland C++
菜单文本:Borland C
命令:c:\bc\bin\bcc32.exe
参数:-Ic:\bc\include -Lc:\bc\lib -n$(FileDir) $(FilePath)
初始目录:c:\bc\bin
捕获输出:开启
例子 3. Visual C++
菜单文本:Visual C++
命令:c:\msdev\vc98\bin\cl.exe
参数:"$(FilePath)"
初始目录:$(FileDir)
捕获输出:开启
例子 4. Inno Setup
菜单文本:编译 Inno
命令:C:\Program Files\Inno Setup 4\Compil32.exe”
参数:/cc $(FileName)
初始目录:$(FileDir)
捕获输出:开启
例子 5. nsis
菜单文本:编译 nsis
命令:C:\NSIS\makensis.exe
参数:$(FileName)
初始目录:$(FileDir)
捕获输出:开启
例子 6. C#
菜单文本:编译 C#
命令:C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\csc.exe
参数:$(FileName)
初始目录:$(FileDir)
捕获输出:开启
在上面设置中,在命令部分,必须使用系统中各自编译器的绝对路径。
设置完毕后,你可以在“工具”菜单运行对应工具了,运行结果会显示在底部的输出窗口,你也可以通过快捷键(Ctrl + 0-9) 运行,或者是通过“用户工具栏”的快捷按钮运行。
要运行已编译的 *.exe 文件,你可以进行如下设置(此时可执行文件需要和编译文件同名):
菜单文本:Run
命令:$(FileNameNoExt)
参数:
初始目录:$(FileDir)
【15】工具集成—— 让Editplus调试PHP程序
1:打开Editplus,选择"工具->配置用户工具..."菜单。
2:在弹出的窗口中选择"添加工具->应用程序",给新程序起一个好记的名字,比如这里我们用"Debug PHP",在"菜单文本"中输入"Debug PHP"。点击"命令行"右边的按钮,找到你的php.exe所在的路径,例如这里是"c:\php\php.exe"。再点击"参数"右边的下拉按钮选择"文件路径",最后再把"捕获输出"前面的复选框选上。
3:现在测试一下,新建一个php文件,按快捷键Ctrl+1可以激活刚才我们设置的工具(如果你设置了多个工具,快捷键可能会有所不同),现在你可以看到它已经能正常工作了。但是还有一点不太理想:如果你的PHP程序出错,在输出窗口会提示你第几行出错 ,单击这一行提示,Editplus老是提示你找不到某某文件,是否新建。接下下我们要修正这个功能。
4:打开刚才用户工具设置窗口,找到刚才设置的"Debug PHP"工具。点击"捕获输出"复选框旁边的"输出模式"按钮,会弹出一个定义输出模式的窗体,把"使用默认输出模式"前面的复选框去掉, 在"正则表达式"这一项的文本框中输入" ^.+ in (.+) line ([0-9]+) "(不包括引号),细心的朋友可能会发现,这里使用的也正则表达式的语法。然后,在下面的"文件名"下拉菜单中选择"预设表达式 1",即上边正则表达式中的第一个参数,"行"下拉菜单项选择"预设表达式 2","列"下拉项保持为空。然后保存设置。
5:好了,现在再来试一下吧,双击出错的行数,Editplus就会自动激活出错文件,并把光标定位到出错行,是不是特别方便呢?!
现在,Editplus经过我们的"改造",已经可以即时的调试PHP文件了,虽然还不是"可视化"界面的,但对于一些平常的小程序来查错还是非常好用的。Editplus真是不款不可多得的好工具,如果你有什么使用技巧,不要忘了大家一起分享哦。^O^
如果不能切换错误行号,请尝试作如下修改: (by aukw@CCF)
1.php.ini 中html_errors = Off打开
//如果你不打开,3.中的表达式要修改
2.参数改成:-q -f "$(FilePath)"
//不加"符号的话文件名有空格的文件调试失败。。
//-q不输出html头信息,你去掉也行,不过调试时候你一般用不到那些header信息
3." ^.+ in (.+) line ([0-9]+) " 改成 "^.+ in (.+) on line ([0-9]+)$"
//如果还是不行,请注意调试结果,自己修改表达式来取出文件名和行号
【16】工具集成——打造 PHP 调试环境(二)
1: 把剪辑库定位在 PHP4 Functions 上就可以在编辑时, 利用[插入]->[匹配剪辑]命令,就可以自动完成末输入完整的 PHP 函数(或直接按 F2 键)
2: 类似上面,在选择部分文字后,同样可以自动完成。(同 F2)
3: 在[参数选择]->[设置和语法]->PHP->自动完成, 选择目录下的 php.acp 文件,你可以定制自己的自动完成方式.
4: 想要即时预览文件,可在[参数选择]->[工具]->WEB 服务器中添加本地目录,(注意不要加 http:// , 应是一个有效的站点)。
如: 主机->localhost/php | 根目录->D:\php
主机->localhost/asp | 根目录->D:\asp
主机->localhost/cgi | 根目录->D:\cgi
完成设置后只要脚本文件位于这些目录下(子目录也没问题), 就能够正确解释.
5: 各种语法和模板文件可以在 http://editplus.com/files.html 获得,可根据需要选用和编辑。
6: Ctrl+F11 可显示当前文件中的函数列表.
7: 添加各种用户工具.如:
启动MYSQL服务器管理工具->C:\mysql\bin\winmysqladmin.exe
启动Apache服务器->C:\Apache\bin\Apache.exe -k start
启动Apache服务器->C:\Apache\bin\Apache.exe -k stop (shutdown)
8: DBG 附带有一个 prof_results.php 文件,可剖析 PHP 程序的性能.
虽不是真正的调试器,但已经够了.
OK! 经过改造后,是不是有点象一个 IDE 什么?还差点,没有即时帮助...看我的,再来:
9: 把 php_manual_en.chm (最好是扩展帮助手册)加入到用户工具中, 当遇到需要参考的关键字时, 把光标定位其上, 按下快捷键 Ctrl+1, 看到了吗.
在输入时有想不起来的函数名时, 先按照第 1 条的方法调出函数, 然后...怎么样?
以上有的是对于调试工具的设置,由于此类工具比较多,大家设置时参考以上的基本就差不多了,所以就不过多的列举了。
【17】在 WINPE 中集成 EDITPLUS
可以基于目前的bartpe做得WINPE中,菜单使用nu2menu制作
默认位置为 \programs\editplus\
默认系统位置为光盘的 i386 目录
i386/system32 的 autorun.bat 中添加外壳集成(系统右键)
regedit /s %SystemDrive%\programs\editplus\REG.REG
regsvr32 /s \programs\editplus\EPPSHELL.DLL
(reg.reg保存了epp的工具栏信息,当然注册用户也可以放置注册信息)
复制editplus安装包里面的文件到programs\editplus\,注意,如果有setting.ini,删掉该文件,在nu2menu里面加入以下句子(可以根据需要安排位于特定菜单条目下)
FUNC="@GetProgramDrive()\Programs\EditPlus\editplus.exe">EditPlus 文本编辑
【18】支持带UTF-8标记/不带UTF-8标记的文件 Lei@DRL提出并测试
这里Byte Order Mark翻译为标记/文件头/标签
参数选择-文件-里面设置“支持不带有UTF-8文件头的UTF-8文件”,我这里翻译标签为UTF-8文件头,如果复选该项,应该是保存为不带标签的Utf-8,如果不复选,应该是保存成带有BOM的UTF-8。
这样就可以打开带签名的UTF-8文件,并且可以正常编辑,但是又不能打开不带签名的了,想要打开不带签名的还需要改回来...不过虽然有点麻烦,但是总算能用了
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。也可以联系我QQ:29011218。
PHP培训招生简章
【1】 正则表达式应用——替换指定内容到行尾
【2】 正则表达式应用——数字替换----------------------------Microshaoft@CCF,jiuk2k@CCF
【3】 正则表达式应用——删除每一行行尾的指定字符
【4】 正则表达式应用——替换带有半角括号的多行
【5】 正则表达式应用——删除空行----------------------------江德华
软件技巧类
------------------------------------------------------
【6】 软件技巧——键盘记录的注意事项
【7】 软件技巧——关闭文档标签的便捷方法
【8】 软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示?
【9】 软件技巧——提示找不到语法文件的解决办法
【10】软件技巧——设置editplus支持其它文字,如韩文----------jackywu1978@LJF
【11】软件技巧——FTP 上传的设置----------------------------李应文2.11汉化版
【12】软件技巧——如何禁用备份文件功能?
【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件
工具集成类
------------------------------------------------------
【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis、C#)
【15】工具集成——让Editplus调试PHP程序----------------------avenger,aukw@CCF
【16】工具集成——打造 PHP 调试环境(二)----------------------老七2.11汉化版
【17】在 WINPE 中集成 EDITPLUS
后续添加
------------------------------------------------------
【18】支持带UTF-8标记/不带UTF-8标记的文件
每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。
【1】正则表达式应用——替换指定内容到行尾
原始文本如下面两行
abc aaaaa
123 abc 444
希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg
解决:
① 在替换对话框,查找内容里输入“abc.*”
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多
注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。
【2】正则表达式应用——数字替换 (Microshaoft@CCF,jiuk2k@CCF)
希望把
asdadas123asdasdas456asdasdasd789asdasd
替换为:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd
在替换对话框里面,勾选“正则表达式”复选框;
在查找内容里面输入“[0-9][0-9][0-9]”,不含引号
“替换为:”里面输入“[\0\1\2]”,不含引号
范围为你所操作的范围,然后选择替换即可。
实际上这也是正则表达式的使用特例,“[0-9]”表示匹配0~9之间的任何特例,同样“[a-z]”就表示匹配a~z之间的任何特例
上面重复使用了“[0-9]”,表示连续出现的三个数字
“\0”代表第一个“[0-9]”对应的原型,“\1”代表第二个“[0-9]”对应的原型,依此类推
“[”、“]”为单纯的字符,表示添加“[”或“]”,如果输入“其它\0\1\2其它”,则替换结果为:
asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd
功能增强(by jiuk2k@CCF):
如果将查找内容“[0-9][0-9][0-9]”改为“[0-9]*[0-9]”,对应1 或 123 或 12345 或 ...
大家根据需要定制
相关内容还有很多,可以自己参考正则表达式的语法仔细研究一下
【3】正则表达式应用——删除每一行行尾的指定字符
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现
比如
12345 1265345
2345
需要删除每行末尾的“345”
这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下
解决:
在替换对话框中,启用“正则表达式”复选框
在查找内容里面输入“345$”
这里“$”表示从行尾匹配
如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串
a. 选择要操作的行
b. 编辑-格式-删除行注释
c. 在弹出对话框里面输入要清除的行首字符,确定
【4】正则表达式应用——替换带有半角括号的多行
几百个网页中都有下面一段代码:
我想把它们都去掉,可是找了很多search & replace的软件,都是只能对“一行”进行操作。
EditPlus 打开几百个网页文件还是比较顺畅的,所以完全可以胜任这个工作。
具体解决方法,在 Editplus 中使用正则表达式,由于“(”、“)”被用做预设表达式(或者可以称作子表达式)的标志,所以查找
“\n”
时会提示查找不到,所以也就无法进行替换了,这时可以把“(”、“)”使用任意字符标记替代,即半角句号:“.”。替换内容为
\n
在替换对话框启用“正则表达式”选项,这时就可以完成替换了
补充:(lucida@DRL)
对( ) 这样的特殊符号,应该用\( \)来表示,这也是很标准的regexp语法,可以写为
\n
【5】正则表达式应用——删除空行
启动EditPlus,打开待处理的文本类型文件。
①、选择“查找”菜单的“替换”命令,弹出文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“替换范围”中的“当前文件”,表明对当前文件操作。
②、单击“查找内容”组合框右侧的按钮,出现下拉菜单。
③、下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。
直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有空格符。
(1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。
(2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。
(3)按一下空格键,添加空格符。空格符是空行的一个组成成分。
(4)选择“制表符”,添加代表制表符的“\t”。
(5)移动光标,将当前插入点移到“]”之后,然后选择“匹配 0 次或更多”,该操作会添加星号字符“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出现0个或多个。
(6)选择“换行符”,插入“\n”,表示回车符。
④、“替换为”组合框保持空,表示删除查找到的内容。单击“替换”按钮逐个行删除空行,或单击“全部替换”按钮删除全部空行(注意:EditPlus有时存在“全部替换”不能一次性完全删除空行的问题,可能是程序BUG,需要多按几次按钮)。
【6】软件技巧——键盘记录的注意事项
EditPlus 的键盘记录有些类似于 UltraEdit 的宏操作,不过功能相对单一,录制的文件可编辑性较差。
由于基本无法编辑录制的文件,所以录制的时候为了避免录制失败,推荐纯粹使用键盘操作,以下是比较关键的几个键盘组合:
Ctrl+F = 调出查找对话框
Ctrl+H = 调出替换对话框
Alt+F4 = 关闭作用,比如,关闭查找对话框、关闭替换对话框,等等
其它键盘快捷键在“帮助-快捷键列表”里面可以很容易的查找到,这里就不细说了。
【7】软件技巧——关闭文档标签的便捷方法
右键单击文档标签工具条,弹出菜单中选择“标签选项”,选中“用鼠标中间的按钮关闭”,这里包括鼠标的滚轮。
【8】软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示?
如果你使用 EditPlus 进行文本编辑,那么每次创建文本文件,编辑后保存时,尽管文件类型下拉列表中显示的是文本文件, EditPlus 还是询问你是否添加".txt"后缀,是不是很烦?
解决方法:
① 在程序目录建立一个空的文件“template.txt”
② “工具-参数设置-模板”里面,单击“添加”按钮添加模板,“菜单文本”这里输入“Text”,浏览“template.txt”,之后确定即可
③ “文件-新建-text”,就可以建立一个空的文本文件,保存时,这个文件自动带有扩展名".txt",也就避免了令人头疼的确认
④ 模板设置文件名称为“template.ini”,如果和主程序同一路径,可以使用相对路径
罗嗦了点,不过管用
要自动创建带有某种后缀的文件,方法同上。
【9】软件技巧——提示找不到语法文件 *.stx 的解决办法
原因多为设置的语法文件不存在或者是路径设置不对。这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。
解决办法:
在主程序目录里,找到 Setting.ini 这是 EditPlus 存放语法的文件
查找后缀为“.stx”、“acp”的文本内容,或者查找带有驱动器符号的行,比如
Syntax file=C:\Program Files\EditPlus 2\cpp.stx
那么,就把”C:\Program Files\EditPlus 2\“替换成你当前软件的路径。
其它提示找不到文件的解决方法同上
【10】软件技巧——设置editplus支持其它文字,如韩文
在editplus里打开文件,出来打开文件对话框;然后点击“转换器”后面的那个省略号,会出来自定义转换器对话框;在右边选择你需要的编码方式,添加到左边,然后点确定;最后在下拉框中选择需要的编码方式,然后打开文件即可。
【11】软件技巧——FTP 上传的设置
“文件->远程操作->FTP 上传”在“设置”选项卡中设置好参数(“子目录”前面应该加“/”如“/web/”),点击“确定”回到“FTP 上传”选项卡,然后点击“上传”即可;“批量上传”的设置类似。
【12】软件技巧——如何禁用备份文件功能?
在“参数选择”的文件选项页,禁用“'保存时自动创建备份文件”选项
【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件
要添加 *.STX(语法文件)或 *.ACP(自动完成文件):
1. 选择“参数选择→语法”
2. 单击“添加”按钮,命名,在“扩展名”部分输入对应扩展名(不带“.”)
3. 浏览/输入 STX(语法文件部分) 以及 ACP(自动完成文件部分)。
添加剪辑库文件(*.CTL)
复制相应 *.CTL 文件到软件安装目录,重新启动 EditPlus ,则系统自动识别。
作者主页有很多语法自动完成文件下载,地址
http://editplus.com/files.html
【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis)
在“工具→参数选择→用户工具”选项页设置,设置步骤
① 设置组名称,这里也可以不设置
② 单击“添加工具→应用程序”按钮并进行如下设置
③ 各种类似"$(FilePath)"的参数可以在文本框右侧的箭头下拉菜单中获取,具体含义如下
参数 描述
$(FilePath) 文件路径(文件全名,含目录和文件名)
$(FileDir) 文件目录(不带文件名)
$(FileName) 文件名(不带目录)
$(FileNameNoExt) 不带扩展名的文件名(不带目录)
$(FileExt) 扩展名(当前文件)
$(ProjectName) 工程名称(当前工程名)
$(CurLine) 当前行号(光标位置处的行号)
$(CurCol) 当前列号(光标位置处的列号)
$(CurSel) 当前文本(插入当前选定文本)
$(CurWord) 当前单词(插入当前单词)
$(WindowList) 显示当前窗口列表并选择特定文件
例子 1. Java 编译器
菜单文本:Java 编译器
命令:c:\java\bin\javac.exe
参数:"$(FilePath)"
初始目录:$(FileDir)
捕获输出:开启
要运行已编译的 Java 类文件,你可以进行如下设置:
菜单文本:Java
命令:c:\java\bin\java.exe
参数:$(FileNameNoExt)
初始目录:$(FileDir)
“命令”部分应当替换为实际的 Java 解释器的路径。
例子 2. Borland C++
菜单文本:Borland C
命令:c:\bc\bin\bcc32.exe
参数:-Ic:\bc\include -Lc:\bc\lib -n$(FileDir) $(FilePath)
初始目录:c:\bc\bin
捕获输出:开启
例子 3. Visual C++
菜单文本:Visual C++
命令:c:\msdev\vc98\bin\cl.exe
参数:"$(FilePath)"
初始目录:$(FileDir)
捕获输出:开启
例子 4. Inno Setup
菜单文本:编译 Inno
命令:C:\Program Files\Inno Setup 4\Compil32.exe”
参数:/cc $(FileName)
初始目录:$(FileDir)
捕获输出:开启
例子 5. nsis
菜单文本:编译 nsis
命令:C:\NSIS\makensis.exe
参数:$(FileName)
初始目录:$(FileDir)
捕获输出:开启
例子 6. C#
菜单文本:编译 C#
命令:C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\csc.exe
参数:$(FileName)
初始目录:$(FileDir)
捕获输出:开启
在上面设置中,在命令部分,必须使用系统中各自编译器的绝对路径。
设置完毕后,你可以在“工具”菜单运行对应工具了,运行结果会显示在底部的输出窗口,你也可以通过快捷键(Ctrl + 0-9) 运行,或者是通过“用户工具栏”的快捷按钮运行。
要运行已编译的 *.exe 文件,你可以进行如下设置(此时可执行文件需要和编译文件同名):
菜单文本:Run
命令:$(FileNameNoExt)
参数:
初始目录:$(FileDir)
【15】工具集成—— 让Editplus调试PHP程序
1:打开Editplus,选择"工具->配置用户工具..."菜单。
2:在弹出的窗口中选择"添加工具->应用程序",给新程序起一个好记的名字,比如这里我们用"Debug PHP",在"菜单文本"中输入"Debug PHP"。点击"命令行"右边的按钮,找到你的php.exe所在的路径,例如这里是"c:\php\php.exe"。再点击"参数"右边的下拉按钮选择"文件路径",最后再把"捕获输出"前面的复选框选上。
3:现在测试一下,新建一个php文件,按快捷键Ctrl+1可以激活刚才我们设置的工具(如果你设置了多个工具,快捷键可能会有所不同),现在你可以看到它已经能正常工作了。但是还有一点不太理想:如果你的PHP程序出错,在输出窗口会提示你第几行出错 ,单击这一行提示,Editplus老是提示你找不到某某文件,是否新建。接下下我们要修正这个功能。
4:打开刚才用户工具设置窗口,找到刚才设置的"Debug PHP"工具。点击"捕获输出"复选框旁边的"输出模式"按钮,会弹出一个定义输出模式的窗体,把"使用默认输出模式"前面的复选框去掉, 在"正则表达式"这一项的文本框中输入" ^.+ in (.+) line ([0-9]+) "(不包括引号),细心的朋友可能会发现,这里使用的也正则表达式的语法。然后,在下面的"文件名"下拉菜单中选择"预设表达式 1",即上边正则表达式中的第一个参数,"行"下拉菜单项选择"预设表达式 2","列"下拉项保持为空。然后保存设置。
5:好了,现在再来试一下吧,双击出错的行数,Editplus就会自动激活出错文件,并把光标定位到出错行,是不是特别方便呢?!
现在,Editplus经过我们的"改造",已经可以即时的调试PHP文件了,虽然还不是"可视化"界面的,但对于一些平常的小程序来查错还是非常好用的。Editplus真是不款不可多得的好工具,如果你有什么使用技巧,不要忘了大家一起分享哦。^O^
如果不能切换错误行号,请尝试作如下修改: (by aukw@CCF)
1.php.ini 中html_errors = Off打开
//如果你不打开,3.中的表达式要修改
2.参数改成:-q -f "$(FilePath)"
//不加"符号的话文件名有空格的文件调试失败。。
//-q不输出html头信息,你去掉也行,不过调试时候你一般用不到那些header信息
3." ^.+ in (.+) line ([0-9]+) " 改成 "^.+ in (.+) on line ([0-9]+)$"
//如果还是不行,请注意调试结果,自己修改表达式来取出文件名和行号
【16】工具集成——打造 PHP 调试环境(二)
1: 把剪辑库定位在 PHP4 Functions 上就可以在编辑时, 利用[插入]->[匹配剪辑]命令,就可以自动完成末输入完整的 PHP 函数(或直接按 F2 键)
2: 类似上面,在选择部分文字后,同样可以自动完成。(同 F2)
3: 在[参数选择]->[设置和语法]->PHP->自动完成, 选择目录下的 php.acp 文件,你可以定制自己的自动完成方式.
4: 想要即时预览文件,可在[参数选择]->[工具]->WEB 服务器中添加本地目录,(注意不要加 http:// , 应是一个有效的站点)。
如: 主机->localhost/php | 根目录->D:\php
主机->localhost/asp | 根目录->D:\asp
主机->localhost/cgi | 根目录->D:\cgi
完成设置后只要脚本文件位于这些目录下(子目录也没问题), 就能够正确解释.
5: 各种语法和模板文件可以在 http://editplus.com/files.html 获得,可根据需要选用和编辑。
6: Ctrl+F11 可显示当前文件中的函数列表.
7: 添加各种用户工具.如:
启动MYSQL服务器管理工具->C:\mysql\bin\winmysqladmin.exe
启动Apache服务器->C:\Apache\bin\Apache.exe -k start
启动Apache服务器->C:\Apache\bin\Apache.exe -k stop (shutdown)
8: DBG 附带有一个 prof_results.php 文件,可剖析 PHP 程序的性能.
虽不是真正的调试器,但已经够了.
OK! 经过改造后,是不是有点象一个 IDE 什么?还差点,没有即时帮助...看我的,再来:
9: 把 php_manual_en.chm (最好是扩展帮助手册)加入到用户工具中, 当遇到需要参考的关键字时, 把光标定位其上, 按下快捷键 Ctrl+1, 看到了吗.
在输入时有想不起来的函数名时, 先按照第 1 条的方法调出函数, 然后...怎么样?
以上有的是对于调试工具的设置,由于此类工具比较多,大家设置时参考以上的基本就差不多了,所以就不过多的列举了。
【17】在 WINPE 中集成 EDITPLUS
可以基于目前的bartpe做得WINPE中,菜单使用nu2menu制作
默认位置为 \programs\editplus\
默认系统位置为光盘的 i386 目录
i386/system32 的 autorun.bat 中添加外壳集成(系统右键)
regedit /s %SystemDrive%\programs\editplus\REG.REG
regsvr32 /s \programs\editplus\EPPSHELL.DLL
(reg.reg保存了epp的工具栏信息,当然注册用户也可以放置注册信息)
复制editplus安装包里面的文件到programs\editplus\,注意,如果有setting.ini,删掉该文件,在nu2menu里面加入以下句子(可以根据需要安排位于特定菜单条目下)
【18】支持带UTF-8标记/不带UTF-8标记的文件 Lei@DRL提出并测试
这里Byte Order Mark翻译为标记/文件头/标签
参数选择-文件-里面设置“支持不带有UTF-8文件头的UTF-8文件”,我这里翻译标签为UTF-8文件头,如果复选该项,应该是保存为不带标签的Utf-8,如果不复选,应该是保存成带有BOM的UTF-8。
这样就可以打开带签名的UTF-8文件,并且可以正常编辑,但是又不能打开不带签名的了,想要打开不带签名的还需要改回来...不过虽然有点麻烦,但是总算能用了
现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。也可以联系我QQ:29011218。
PHP培训招生简章





2007/10/03 22:04 
