专门从网上收集各种有关blogger设计的文章

2007年12月28日星期五

是谁害死了小布托?

是谁害死了小布托?
如果透过种种表象,我们最终可以发现是美国。
美国从最开始的阿富汗战争培养(资助)了塔利班,为了对付当时的苏联。苏联解体,塔利班成了麻烦,而美国不是采到政治手段化解,坚持以武力解决,从后来的阿富汗战争到伊拉克战争,美国穷兵黩武,但塔利班和基地组织没有得到削弱,反而加强了。为了打击恐怖组织,美国向巴基斯坦施压,不考虑巴国的现状,甚至威胁如果巴基斯坦不配合,要把巴基斯坦炸回石器时代,还不断叫嚣着要亲自派美军进入巴境内打击恐怖组织,激起了巴国人民普遍的反感和反对,巴国人民对美国是憎恶的。
在巴大选来临之际,美国又用其扶植的小布托与巴总统、陆军参谋长分权,逼穆脱下军装,名曰增强民主,其实就是扶植亲美势力,以期保证美国的利益。
小布托是一个悲情的人物,投入美国的怀抱,却成了美国利益的牺牲品。

是谁害死了小布托?

是谁害死了小布托?
如果透过种种表象,我们最终可以发现是美国。
美国从最开始的阿富汗战争培养了塔利班,为了对付当时的苏联。苏联解体,塔利班成了麻烦,而美国不是采到政治手段化解,坚持以武力解决,从后来的阿富汗战争到伊拉克战争,塔利班没有得到削弱,反而加强了。为了打击恐怖组织,美国向巴基斯坦施压,不考虑巴国的现状,甚至威胁如果巴基斯坦不配合,要把巴基斯坦炸回石器时代,还不断叫嚣着要亲自派美军进入巴境内打击恐怖组织,激起了巴国人民普遍的反感和反对,巴国人民对美国是憎恶的。
现在又扶持了亲美的小布托与巴总统、陆军参谋长分权,名曰民主,其实就是扶植亲美势力,以期保证美国的利益。
小布托是一个悲情的人物,投入美国的怀抱,却成了美国利益的牺牲品。

2007年12月27日星期四

如何看待巴基斯坦这个国家?

吉戈/最近巴基斯坦的国内政治引发了国际社会的极大关注,局势复杂多变。如何看待巴基斯坦这个国家,我认为应从几个侧面解剖。
巴基斯坦像六个伊斯兰教国家:像中东的埃及,有一位带有军人背景的总统,埃及总统穆巴拉克过去是军人,而巴基斯坦总统穆沙拉夫不久前还是四星上将和陆军参谋长;巴基斯坦像土耳其,有比较成熟的世俗社会,军队在国家政治中有比较大的影响力和权力;巴基斯坦像伊朗,有比较强大的宗教极端势力和宗教政党,而且宗教政党在国家中的地位也很特殊;巴基斯坦像伊拉克,历来有什叶派和逊尼派的伊斯兰教派冲突;巴基斯坦像阿富汗,有非常强大的部落武装和部落矛盾;巴基斯坦还像沙特阿拉伯,遍地都是宗教学校,宗教教育在许多地区的影响力远远超过世俗教育。
此外,它又与四个非伊斯兰教国家相像。巴基斯坦像印度,百分之七十五的巴基斯坦人接受了印度文化,乌尔都语实际上与印地语同出一源;巴基斯坦像英国,所有的政治制度都是仿照英国的,这大概是旧殖民主义的残余;巴基斯坦像(向)美国,它是美国的非北约盟国,巴基斯坦像(向)中国,与中国的关系可谓是比喜马拉雅山高、比阿拉伯海深全天候战略合作关系。
其次,巴基斯坦国内有五大政治势力和五大矛盾。所谓五大政治势力是指军队势力、宗教势力(宗教政党联盟)、人民党势力(代表信德省大地主阶级的利益和旁遮普省以及其他两省的中产阶级和专业人员利益)、穆盟(谢里夫派)(代表旁遮普大工商资产阶级利益)、穆盟(领袖派)(代表巴基斯坦旁遮普省工商资产阶级利益,是执政党,也是穆沙拉夫总统的主要依靠力量)。巴基斯坦政治基本上是围绕着上述五大政治集团之间的角逐运行和演变的。此外,还有类似像移民运动(代表印度移民)、普什图人民党等小党,这些小党不具备全国影响力。
所谓五大矛盾就是宗俗(宗教与世俗)、军民(军队与民选政府)、朝野(执政党与反对党)、司政(司法与行政)、中地(联邦政府与地方政府或部落)矛盾。往往一个时期,一种矛盾上升为影响全国政治的主要矛盾。比如今年一月和六七月,由于红色清真寺事件,所以宗俗矛盾一度为主要矛盾,三月和八月,由于大法官被软禁后又被平反,所以司政矛盾为主要矛盾,而九月份谢里夫的无功而返,则最集中地体现了朝野和军民矛盾,而现在贝·布托回国遭遇恐怖袭击,则既体现了宗俗矛盾激化,也侧面地反映了朝野矛盾和军民矛盾。
巴基斯坦与美国的关系“从辈分”上讲要低,美国一直对巴基斯坦不信任,既把巴基斯坦当作反恐盟友,同时也把巴基斯坦当作恐怖策源地,而且美国对巴基斯坦有点像“后娘”对继子的味道,一方面利用,另一方面又限制和改造。巴基斯坦一方面要“听美国的教导”,一方面又要“挨美国的棒槌”。
(《新京报》,原标题为《巴基斯坦多重政治矛盾待决》)

2007年12月23日星期日

中共能跳出七十年兴亡周期圈吗

2007年7月1日是中国共产党86岁生日,从新中国成立时算起,也已58年,无论从哪方面讲,都是一个老党和执政时间较长的党。我作为一名老党员,抚今追昔,一方面为今日党的事业兴旺发达、国家繁荣昌盛、中国经济和中国模式得到国内外的重视和认可而欢欣鼓舞;另一方面又对党内现在存在的诸多问题,确有一些忧思。本着居安思危精神与君子和而不同的中国优良传统,特真实地把自己的忧思写出来,既供参考,又备他日查阅。

第一,当前党内政治生活的真实情况,和而不同是主流还是同而不和是主流?

和与同的关系,是我国历史上政治生活中的一个关键问题。凡是做到和而不同的,大家心情舒畅,畅所欲言,人际关系比较和谐,经济发展、社会安定、人民安居乐业。反之,一人或一个小集团说了算,不允许有不同意见,人人自危,人际关系紧张,社会生活死气沉沉,实际上是山雨欲来的寂静,是一个闷局,接踵而来的往往是大动乱、大变革。这方面的经验实在太多了。孔子有感于当时的形势,提出“君子和而不同,小人同而不和”,标出君子小人之别,用心可谓良苦。毛泽东在上世纪50年代曾希望我国出现一个新政治局面,特点是:“一个又有集中又有民主,又有纪律又有自由,又有统一意志、又有个人心情舒畅、生动活泼,那样一种政治局面”。他认为这种局面有“利于社会主义革命和社会主义建设,较易于克服困难,较快地建设我国的现代工业和现代农业,党和国家较为巩固,较为能够经受风险”。(毛选五卷456—457)应该说毛主席这种见解与历史上和而不同的论点,在精神上是一致的,是非常好的设想。可惜在毛主席的晚年,他领导了反右派、反右倾等运动特别是十年文化大革命,却又背离上述想法,弄得人人噤若寒蝉,全社会万马齐喑,国民经济到了崩溃边缘,政治上冤狱遍中国,他老人家原先的希望完全破灭,教训实在太沉重。

粉碎“四人帮” 后,我党领导中国,进行了近三十年的改革开放,使党和国家的情况发生了很大变化很大进步,人们的心情变化大,党内和国家政治生活变化更大,这是谁都感觉到的、认可的、拥护的。北京的出租车司机可以与乘客随意谈论朝野大事而毫无顾忌,“谤议于市朝”这一喜人局面竟在今日中国出现了,虽然党对它还没有奖励办法。网上议论更是内容丰富生动活泼。

但是,目前党内在和与同的问题上,究竟进步到什么程度,我以为还是一个应该进一步弄清楚的大问题。形势愈好,我党作为执政党,愈需要清醒。我的看法是,我们的实际生活中,是提不同意见的人得到重用和提拔,还是唯唯诺诺的人得到重用和提拔;是实干的人得到重用和提拔,还是弄虚作假、耍嘴皮子的人得到重用和提拔?我以为这才是最真实的考核干部的尺度。群众中广为流传的“数字出官、官出数字”议论,就是不少干部群众给我们的鉴定。现在一个相当普遍的现象是:人们不讲真话。许多领导干部慨叹:“很难听到真话和不同意见,迎合型干部太多”。下面则慨叹:“讲真话吃亏,不说为佳”。有人反映:现在讲成绩,层层加码,到中央一级成了无限大,完全失真。讲问题和缺点则层层减码,到中央一级仅存空壳,也完全失真。这两个金字塔现象所反映的干部心态不一定十分准确,但也实在太可怕了,其原因更值得我党认真思考。

两种慨叹,一个是想听听不到,一个是想讲不敢讲。本来人们是愿意讲真话的,弄得不敢讲了,根本原因是怕招祸。谁能给他祸呢,当然是各级有权力的人。因此,问题的关键在于各级领导人,能不能听不同意见并择其善者而从之,有不同见解的人能不能受到尊重并受到公平对待。如果社会上因言得祸的事不断发生,当然就没有人讲真话了。粉碎 “四人帮”前,在这个问题上我们有惨痛教训,粉碎“四人帮”后,我们有改进,但不能说已经解决。

一个听不到真话的社会,表明这个社会还是同而没有和。领导听不到真话就是最大的政治问题,说明脱离群众,人们不信任他。我党应该接受教训,并摆脱一切现实的虚假现象,研究群众目前不讲真话和领导听不到真话的现象,找到根本原因,认真解决听真话与讲真话的问题。我希望各级领导干部从自己做起,讲真话,讲到做到,身教重于言教。群众是最有能力区别真话与假话的。“知政失者在草野”,东汉的思想家王充早就认识到这一点。只有上面讲真话办实事,才能换来群众讲真话办真事。 www.6park.com

第二,不少干部中的几股歪风冷了许多群众的心

当前,干部队伍中几股歪风盛行。

一是豪华摆阔风。许多政府的“衙门”和官员宅第,愈来愈豪华气派,也愈来愈脱离群众,引起民怨与民怒。群众称“衙门”集中的街道为腐败一条街,称官员豪宅为贪官营。按照政府规定的标准和干部固定收入,他们不可能建设这样的“衙门”与豪宅,但修成了而且一些贫困地区也这样做了,资金从何而来呢?上级是不管还是管不住呢?这股风看来愈演愈烈,群众的心则愈来愈冷,党政领导的威信愈来愈低。有的群众说,再也看不到“老八路作风”了。这一声叹息包含着无限怀念与无奈,也含着一线希望。

二是迷信风。关于这个问题有不少报道,有的是调查资料,有的是理论上的批评,说得最清楚的是风水师们。一个调查资料说,有近三成的“县处级”干部迷信相面。《求是》杂志论文,则批评少数干部不信马列主义信鬼神。风水师们讲的就具体多了,“县处级以上干部中,相当一部分有风水方面的顾问,有不少人还聘请专职风水师为他规划”,“风水师和官员们的交易是悄然进行的”。“相较于商人,官员们更想念一些‘玄’ 的东西”。为了掩人耳目,风水师们不穿唐装,不留胡子,而是西装革履,打扮成一个推销员模样,出入官府和豪宅。官员不直接出面,有商人代办并买单,当然他们得到的更多。外电报道:“迷信风水现象在中国抬头”,或说:“鬼神迷信在中国抬头”。有报道说,有名的大寨大队,现在有人投资3000万元盖一座庙宇搞旅游。一些干部的迷信风与社会上的迷信风,究竟谁影响了谁,它们反映的是何种内心世界?

三是豪赌风。中国的豪赌已“享誉”世界,他们成了许多国家、地区赌城的常客,我国周边国家、地区都建设专门赌场迎接他们。澳门特区的赌场更是内地豪赌者的佳处,有材料指出,澳门赌场内地赌徒占到93%。官方统计,中国每年流失到国外的赌金达6000亿元,官员输的钱往往都是公款。商人参赌的也大都是官商,真正的民营企业家以创业为主,很少这样干的。这股赌风使中国人在全世界丢尽了脸,群众的愤怒是十分自然的也是应该的。对这股恶风党和政府似乎束手无策。

四是“跑部钱进”风。这已成为潜规则了,下面振振有词。“不跑部就拿不到项目,不用钱就进不了门。跑部钱进是下面的不得已之举,是逼出来的,含着眼泪干的。”送钱已成了一门大学问,神龙见首不见尾,不露痕迹,其妙无穷。比较公开的则是“项目车”是小干部干的,给小单位和个人一个小项目,不用说话就有一辆轿车送上供他使用,油和司机的开支也不用管。在这种潜规则支配下,下面的花样就更多了,风气也就愈来愈坏,上面的管理限制办法,永远跟不上形势。

还有一些风,如公款吃喝风、包二奶风、外逃风等等,就不细说了。

上述种种歪风的总的结果是:我们不少党政机关的办事能力愈来愈低下,出现了所谓的“体制性迟钝症”,处理事件拖拉,往往把一件民意小事情,酿成民怨甚至民怒,成为群体事件,社会安定大受影响。最近发生的两件事就充分说明这一点。一是山西黑砖窑事件。人贩子在河南郑州市等地方抓劳力,通过他们的交通线送到山西各地的黑砖窑,强迫劳动,过着非人生活。此事长期存在,两省的有关部门毫无作为,任其胡行,有的基层单位甚至与他们勾结共同作恶。这里的党政机关的无能已到了何等地步,岂仅是“迟钝症”而已。二是太湖兰藻事件,这是自然现象,完全可以预测到,南京市就有中科院的一个湖泊研究所,对太湖当然十分了解,为什么他们的信息就不能进入省市决策领域?太湖水质关系广大群众生活,当地领导却毫不了解即将发生的严重事故。特别严重的是三江三湖治理已实行多年,为什么还发生这样的事。这两件事太令人震惊并陷入沉思。国家环保部门已明确指出,我国已进入污染高发期。每一个污染源都与当地群众的生产和生活息息相关。高发期的特点及其对周围群众的影响,应早作研究并制定对策,再不能临时被动应付了。

第三,能请群众来监督干部吗?

上述种种歪风在我党我国还不能说处处如此,日日如此,但是若不能及时坚决刹住,不仅会破坏当前的大好形势,如果久拖不决,那就会彻底冷了群众的心,他们必然由怨而怒,势将酿成大祸。群众的耐心不是无限的,我们党的威信也不是天生,更不是一劳永逸的。

现在的问题是,单靠领导机关的力量能否彻底解决这个问题,回答是否定的,无数实践已证明这一点。下面对付上级的监督和检查规律,已弄得清清楚楚,对付办法更是天衣无缝,现在这套监督和检查办法可以说收效甚微。我们处分几个干部可以做到,但改变不了风气,一阵风过后,一切照旧。群众早就总结出一条检查规律: “河水突然清了,表明领导要来检查,河水又污浊了,表明领导走了。”领导得到的是假象,但误以为真,十分高兴。群众却认为下级玩弄领导又成功了。受苦受害的是当地群众,淮河沿岸现在出现不少癌症村,就是最明显的证据。他们既看笑话,对官僚主义的无能,心中怨气和愤怒也随之而来。这种情况是相当普遍的,许多报道都反映了这个情况,下面传说的笑话就更多了。

中国的官场是一个大染缸,有几千年封建社会的传统,积淀太深厚,是一股强大的传统力量,严重影响着我们党。对干部个人来说,这种坏传统坏作风很舒服自在,是很难抗拒的。我们如果没有强大的监督力量制度力量,很难解决大染缸这个大问题。

要彻底解决干部中存在的上述种种歪风,唯一办法就是请群众来批评、监督。他们的监督是全天候的,无时无处不在,谁也无法躲藏。干部干坏事总要伤害一些群众,受伤害的人当然愿意揭发,只要领导支持加以保护和奖励,举报和揭发就可以形成风气和制度,一切歪风就无处隐匿,久之就自然刹住了。如果监督还包括各级领导的决策和工作上的失误,以及一切形式主义的做法,其作用就更大。我以为必须包括这些内容。

请不请群众来监督干部、监督党和政府的决策和工作,是考验我党领导层是否决心依靠群众改变作风和改进工作、发展大好形势的试金石。

请群众来监督干部和我们的工作,要有一套办法和具体制度,要明确规定群众享有的权力,有一定的运行方式,还应有对干部打击报复的处分办法,所有这些都得认真执行。实行起来当然有困难,但不实行这一套,我们遇到的不仅是困难而是灾难。

群众路线,是我们的传家宝,请群众来监督干部和各方面的工作,必将得到广大群众的拥护,这个力量是巨大的,一定会成功,效果一定会很好。

第四、怎样跳出历史周期律

毛泽东和黄炎培关于这个问题的著名对话,是大家熟知的。黄提出中国历史上的封建王朝都未能逃脱“其兴也焉,其亡也忽焉”这一历史周期律的支配,希望中共能找出一条新路来跳出这个周期律。毛泽东回答说已找到了,新路就是民主,让人民来监督政府,政府才不敢松懈,人人起来负责,才不会人亡政息。黄深表赞同,这是1945年7月发生的事情。据说,1949年我军接管北平时,傅作义也提出类似的问题。他说,国民党执政20年就腐化了,结果被人民打倒,共产党执政后,30年、40年后会不会也腐化?(薄一波《若干重大决策与事件的回顾》上册P157)可见,这个历史周期律问题是人们普遍关心的问题,任何执政党都要遇到和解决的问题。

我以为可以从国内经验和国际经验来探索和思考,寻找跳出这个周期圈的办法,特别是怎样实行毛泽东提出的办法。

从国内经验讲,人们关心历史上三个黄金时代及其以后的变化。第一个黄金时代,史称文景之治包括汉武帝的开拓疆域。从文帝开始到武帝末年共94年,之后逐渐衰败,最后是王莽专权和称帝。第二个黄金时代,史称贞观之治直到开元之治共114年,如果算到安史之乱则129年。之后唐朝进入衰败期直到灭亡。第三个黄金时代是清初的康、雍、乾三朝共133年。之后就是内忧外患频繁,虽然消灭了太平天国运动,也未中兴起来,末期的“戊戌变法”更遭到镇压实行不了,最后被辛亥革命推翻。为什么黄金时代之后就是衰败或大乱(如唐朝)是一个值得研究的大问题。我国现在的形势可说也处于黄金时代,但我国的经济高速增长还能维持多久,未来前景怎样,也已是今日人们思考和议论的话题,各种观点都有。从整个中国历史看,黄金时代少而且较为短暂,动乱时代则较多而长,这个问题也值得深思。

从国际经验看,有人提出70年现象问题。指出墨西哥的革命制度党,在上世纪五六十年代曾被世人誉为北大西洋的民主模式,执政71年后失去政权。苏联共产党执政72年后解散,苏联也随之解体。似乎 70年是一个坎。另外,中国国民党在连续执政70年后也失去政权。上述三党失去政权各有自己的具体原因,但脱离群众、不顾群众疾苦,不能妥善处理各种社会问题,内部腐化堕落等等,似乎又是共同的。还是唐朝杜牧在《阿房宫赋》一文中提出的论点:“灭六国者,六国也,非秦也。族秦者,秦也,非天下人也。”就是说统治阶级自己打倒了自己。所谓七十年坎是现象,是长期执政的党放弃自我管束和改造,许多社会问题、环境问题不能解决,群众的实际困难不能解决,统治集团和广大官员生活优裕和腐败盛行。群众无法忍受只能另找他人来帮助自己保护自己,也就是我们常讲的官逼民反。责任在官而不在民。不是民弃官,首先是官弃民。

想通了,解决办法其实十分简单,因为真理总是简单明了的。执政党要做到,一方面实行党内民主,定期改选领导集体,让有作为而清廉的人来领导,解决党内老化、腐化问题。另一方面真正实行政治民主,请人民来监督执政党和政府的干部。两者结合,上述种种问题就能彻底解决。也就是毛泽东对黄炎培所说的实行民主的办法。现在要弄清的问题是:毛泽东为什么说的好,但执政后不但没有实行民主,而且反其道而行之。我们党执政快60年了,直到今日,这党内党外民主,也还实行的不好,没有完全执行。难点究竟在哪里?唐太宗与魏徵的故事最能说明问题。接受批评能防止错误发生,但唐太宗有时也很难受,甚至想杀这个田舍翁。只愿自己说了算的统治者,当然不愿意有人监督他。这就是英明的君主与昏聩君主的区别所在,结局也不大相同。现在是人民当家作主的时代,我们自称是人民公仆,为人民服务,对群众监督总应该有新的认识、新的态度。要为人民服务,又不愿听人民的意见和接受人民的监督,岂不是自相矛盾。结论应是:长期执政的政党要想继续执政打破70年这道坎,必须解决自身腐化和脱离群众问题,除自身不断改革外,唯一有效办法就是严格的强有力的群众监督,这个婆婆非要不可。官员们的不舒服、不自在是很自然的,换来的是群众拥护和社会稳定、和谐,国运昌盛,全国人民大自在、大满意、大舒服。值得,完全值得。

(作者石山,我国著名生态经济学者,曾任中国生态经济学会副理事长,国务院农村发展研究中心原顾问)

2007年12月3日星期一

jQuery中文入门教程_译自Getting Started with jQuery

 

jQuery中文入门指南,翻译加实例,jQuery的起点教程

中文版译者:Keel

此文以实例为基础一步步说明了jQuery的工作方式。现以中文翻译(添加我的补充说明)如下。如有相关意见或建议请麻烦到我的 BLOG 写个回复或者 EMAIL 告知。

英文原版:http://jquery.bassistance.de/jquery-getting-started.html ,感谢原文作者 Jörn Zaefferer

本文发布已征求原作者同意。

另外我认为在学习过程中,有两个API文档你要打开随时查看:

以下部分为原文翻译:

jQuery入门指南教程

这个指南是一个对jQuery库的说明,要求读者了解HTML(DOM)和CSS的一些常识。它包括了一个简单的Hello World的例子,选择器和事件基础,AJAX、FX的用法,以及如何制作jQuery的插件。 这个指南包括了很多代码,你可以copy它们,并试着修改它们,看看产生的效果。

内容提要

  1. 安装
  2. Hello jQuery
  3. Find me:使用选择器和事件
  4. Rate me:使用AJAX
  5. Animate me(让我生动起来):使用FX
  6. Sort me(将我有序化):使用tablesorter插件(表格排序)
  7. Plug me:制作您自己的插件
  8. Next steps(下一步)

安装

一开始,我们需要一个jQuery的库,最新的下载可以到这里找到。这个指南提供一个基本包含实例的包供下载.

下载:jQuery Starterkit

(译者Keel注:一定要下载这个包,光看文章不实践肯定是不行的。)

下载后解压缩,然后用你最喜欢的文本编辑器打开starterkit.html和custom.js这两个文件。(译者Keel注:这两个就是例子文件,所有的例子都用这两个例子作出,custom.js写jQuery代码,starterkit.html观察效果.建议用editPlus打开)

现在,我们就已经做好了一切准备来进行这个著名的"Hello world"例子.

本章的相关链接:

Hello jQuery

在做所有事情之前,我们要让jQuery读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理HTML文档的开始.看看我们打开的custom.js这个文件,里面已经准备好了:

$(document).ready(function() {
// do stuff when DOM is ready
});


放一个简单的alert事件在需要等DOM完成载入,所以我们把任务稍稍变复杂一点:在点击任何一个链接时显示一个alert.



$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});


这样在你点击页面的一个链接时都会触发这个"Hello world"的提示。



(译者Keel注:请照此代码修改custom.js并保存,然后用浏览器打开starterkit.html观察效果。)



让我们看一下这些修改是什么含义。$("a") 是一个jQuery选择器(selector),在这里,它选择所有的a标签(译者Keel注:即<a></a>),$号是 jQuery “类”(jQuery "class")的一个别称,因此$()构造了一个新的jQuery 对象(jQuery object)。函数 click() 是这个jQuery对象的一个方法,它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法.



这里有一个拟行相似功能的代码:



<a href="#" onclick="alert('Hello world')">Link</a>


不同之处很明显,用jQuery不需要在每个a标签上写onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开的目的,就像我们使用CSS追求的一样.



下面我们会更多地了解到选择器与事件.



本章的相关链接:




Find me:使用选择器和事件



jQuery提供两种方式来选择html的elements,第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构造器(如:$("div > ul a"));第二种是用jQuery对象的几个methods(方法)。这两种方式还可以联合起来混合使用。



为了测试一下这些选择器,我们来试着在我们starterkit.html中选择并修改第一个ordered list.



一开始,我们需要选择这个list本身,这个list有一个ID叫“orderedlist”,通常的javascript写法是document.getElementById("orderedlist").在jQuery中,我们这样做:



$(document).ready(function() {
$("#orderedlist").addClass("red");
});


这里将starterkit中的一个CSS样式red附加到了orderedlist上(译者Keel注:参考测试包中的css目录下的core.css,其中定义了red样式)。因此,在你刷新了starterkit.html后,你将会看到第一个有序列表(ordered list )背景色变成了红色,而第二个有序列表没有变化.



现在,让我们添加一些新的样式到list的子节点.



$(document).ready(function() {
$("#orderedlist > li").addClass("blue");
});


这样,所有orderedlist中的li都附加了样式"blue"。



现在我们再做个复杂一点的,当把鼠标放在li对象上面和移开时进行样式切换,但只在list的最后一个element上生效。



$(document).ready(function() {
$("#orderedlist li:last").hover(function() {
$(this).addClass("green");
}, function() {
$(this).removeClass("green");
});
});


还有大量的类似的CSSXPath例子,更多的例子和列表可以在这里找到。(译者Keel注:入门看此文,修行在个人,要想在入门之后懂更多,所以这段话的几个链接迟早是要必看的!不会又要翻译吧...^_^!)



每一个onXXX事件都有效,如onclick,onchange,onsubmit等,都有jQuery等价表示方法(译者Keel注:jQuery不喜欢onXXX,所以都改成了XXX,去掉了on)。其他的一些事件,如ready和hover,也提供了相应的方法。



你可以在Visual jQuery找到全部的事件列表,在Events栏目下.



用这些选择器和事件你已经可以做很多的事情了,但这里有一个更强的好东东!



$(document).ready(function() {
$("#orderedlist").find("li").each(function(i) {
$(this).html( $(this).html() + " BAM! " + i );
});
});


find() 让你在已经选择的element中作条件查找,因此 $("#orderedlist).find("li") 就像 $("#orderedlist li")一样。each()方法迭代了所有的li,并可以在此基础上作更多的处理。 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子中, html()用来获取每个li的html文本, 追加一些文字,并将之设置为li的html文本。(译者Keel注:从这个例子可以看到.html()方法是获取对象的html代码,而.html('xxx')是设置'xxx'为对象的html代码)



另一个经常碰到的任务是在没有被jQuery覆盖的DOM元素上call一些方法,想像一个在你用AJAX方式成功提交后的reset:



$(document).ready(function() {
// use this to reset a single form
$("#reset").click(function() {
$("#form")[0].reset();
});
});


(译者Keel注:这里作者将form的id也写成了form,源文件有<form id="form">,这是非常不好的写法,你可以将这个ID改成form1或者testForm,然后用$("#form1")或者$("#testForm")来表示它,再进行测试。)



这个代码选择了所有ID为"form"的元素,并在其第一个上call了一个reset()。如果你有一个以上的form,你可以这样做:



$(document).ready(function() {
// use this to reset several forms at once
$("#reset").click(function() {
$("form").each(function() {
this.reset();
});
});
});


(译者Keel注:请注意一定要亲自将这些代码写在custom.js中并在starterkit.html上测试效果才能有所体会!必要时要观察starterkit.html的html代码)



这样你在点击Reset链接后,就选择了文档中所有的form元素,并对它们都执行了一次reset()。



还有一个你可能要面对的问题是不希望某些特定的元素被选择。jQuery 提供了filter() 和not() 方法来解决这个问题。 filter()以过滤表达式来减少不符合的被选择项, not()则用来取消所有符合过滤表达式的被选择项. 考虑一个无序的list,你想要选择所有的没有ul子元素的li元素。



$(document).ready(function() {
$("li").not("[ul]").css("border", "1px solid black");
});


这个代码选择了所有的li元素,然后去除了没有ul子元素的li元素。刷新浏览器后,所有的li元素都有了一个边框,只有ul子元素的那个li元素例外。



(译者Keel注:请注意体会方便之极的css()方法,并再次提醒请务必实际测试观察效果,比方说换个CSS样式呢?再加一个CSS样式呢?像这样:$("li").not("[ul]").css("border", "1px solid black").css("color","red");)



上面代码中的[expression] 语法是从XPath而来,可以在子元素和属性(elements and attributes)上用作过滤器,比如你可能想选择所有的带有name属性的链接:



$(document).ready(function() {
$("a[@name]").background("#eee");
});


这个代码给所有带有name属性的链接加了一个背景色。(译者Keel注:这个颜色太不明显了,建议写成$("a[@name]").background("red");)



更常见的情况是以name来选择链接,你可能需要选择一个有特点href属性的链接,这在不同的浏览器下对href的理解可能会不一致,所以我们的部分匹配("*=")的方式来代替完全匹配("="):



$(document).ready(function() {
$("a[@href*=/content/gallery]").click(function() {
// do something with all links that point somewhere to /content/gallery
});
});


到现在为止,选择器都用来选择子元素或者是过滤元素。另外还有一种情况是选择上一个或者下一个元素,比如一个FAQ的页面,答案首先会隐藏,当问题点击时,答案显示出来,jQuery代码如下:



$(document).ready(function() {
$('#faq').find('dd').hide().end().find('dt').click(function() {
var answer = $(this).next();
if (answer.is(':visible')) {
answer.slideUp();
} else {
answer.slideDown();
}
});
});


这里我们用了一些链式表达法来减少代码量,而且看上去更直观更容易理解。像'#faq' 只选择了一次,利用end()方法,第一次find()方法会结束(undone),所以我们可以接着在后面继续find('dt'),而不需要再写$('#faq').find('dt')。



在点击事件中的,我们用 $(this).next() 来找到dt下面紧接的一个dd元素,这让我们可以快速地选择在被点击问题下面的答案。



(译者Keel注:这个例子真是太酷了,FAQ中的答案可以收缩!从利用next()的思路到实现这些效果都有很多地方需要我们消化,注意 if (answer.is(':visible'))用法,注意answer.slideUp();不懂的地方赶紧查我在最开始提到的两个必看API文档)



除了选择同级别的元素外,你也可以选择父级的元素。可能你想在用户鼠标移到文章某段的某个链接时,它的父级元素--也就是文章的这一段突出显示,试试这个:



$(document).ready(function() {
$("a").hover(function() {
$(this).parents("p").addClass("highlight");
}, function() {
$(this).parents("p").removeClass("highlight");
});
});


测试效果可以看到,移到文章某段的链接时,它所在的段全用上highlight样式,移走之后又恢复原样。



(译者Keel注:highlight是core.css中定义的样式,你也可以改变它,注意这里有第二个function()这是hover方法的特点,请在API文档中查阅hover,上面也有例子说明)



在我们继续之前我们先来看看这一步: jQuery会让代码变得更短从而更容易理解和维护,下面是$(document).ready(callback)的缩写法:



$(function() {
// code to execute when the DOM is ready
});


应用到我们的Hello world例子中,可以这样:



$(function() {
$("a").click(function() {
alert("Hello world!");
});
});


现在,我们手上有了这些基础的知识,我们可以更进一步的探索其它方面的东西,就从AJAX开始!



本章的相关链接:




Rate me:使用AJAX



在这一部分我们写了一个小小的AJAX应用,它能够rate一些东西(译Keel注:就是对某些东西投票),就像在youtube.com上面看到的一样。



首先我们需要一些服务器端代码,这个例子中用到了一个PHP文件,读取rating参数然后返回rating总数和平均数。看一下rate.php代码.



虽然这些例子也可以不使用AJAX来实现,但显示我们不会那么做,我们用jQuery生成一个DIV容器,ID是"rating".



$(document).ready(function() {
// generate markup
var ratingMarkup = ["Please rate: "];
for(var i=1; i <= 5; i++) {
ratingMarkup[ratingMarkup.length] = "<a href='#'>" + i + "</a> ";
}
// add markup to container and applier click handlers to anchors
$("#rating").append( ratingMarkup.join('') ).find("a").click(function(e) {
e.preventDefault();
// send requests
$.post("rate.php", {rating: $(this).html()}, function(xml) {
// format result
var result = [
"Thanks for rating, current average: ",
$("average", xml).text(),
", number of votes: ",
$("count", xml).text()
];
// output result
$("#rating").html(result.join(''));
} );
});
});


这段代码生成了5个链接,并将它们追加到id为"rating"容器中,当其中一个链接被点击时,该链接标明的分数就会以rating参数形式发送到rate.php,然后,结果将以XML形式会从服务器端传回来,添加到容器中,替代这些链接。



如果你没有一个安装过PHP的webserver,你可以看看这个在线的例子.



不使用javascript实现的例子可以访问 softonic.de 点击 "Kurz bewerten!"



更多的AJAX方法可以从这里 找到,或者看看API文档 下面的AJAX filed under AJAX.



(译者Keel注:这个在线实例从国内访问还是比较慢的,点击后要等一会儿才能看到结果,可以考虑对它进行修改,比如加上loading,投票后加上再投票的返回链接等。此外,这个例子中还是有很多需要进一步消化的地方,看不懂的地方请参考API文档。)



一个在使用AJAX载入内容时经常发生的问题是:当载入一个事件句柄到一个HTML文档时,还需要在载入内容上应用这些事件,你不得不在内容加载完成后应用这些事件句柄,为了防止代码重复执行,你可能用到如下一个function:



// lets use the shortcut
$(function() {
var addClickHandlers = function() {
$("a.clickMeToLoadContent").click(function() {
$("#target").load(this.href, addClickHandlers);
});
};
addClickHandlers();
});


现在,addClickHandlers只在DOM载入完成后执行一次,这是在用户每次点击具有clickMeToLoadContent 这个样式的链接并且内容加载完成后.



请注意addClickHandlers函数是作为一个局部变量定义的,而不是全局变量(如:function addClickHandlers() {...}),这样做是为了防止与其他的全局变量或者函数相冲突.



另一个常见的问题是关于回调(callback)的参数。你可以通过一个额外的参数指定回调的方法,简单的办法是将这个回调方法包含在一个其它的function中:



// get some data
var foobar = ...;
// specify handler, it needs data as a paramter
var handler = function(data) {
...
};
// add click handler and pass foobar!
$('a').click( function(event) { handler(foobar); } );

// if you need the context of the original handler, use apply:
$('a').click( function(event) { handler.apply(this, [foobar]); } );


用到简单的AJAX后,我们可以认为已经非常之“web2.0”了,但是到现在为止,我们还缺少一些酷炫的效果。下一节将会谈到这些效果.



本章的相关链接:




Animate me(让我生动起来):使用FX



一些动态的效果可以使用 show()hide()来表现:



$(document).ready(function() {
$("a").toggle(function() {
$(".stuff").hide('slow');
}, function() {
$(".stuff").show('fast');
});
});


你可以与 animate()联合起来创建一些效果,如一个带渐显的滑动效果:



$(document).ready(function() {
$("a").toggle(function() {
$(".stuff").animate({
height: 'hide',
opacity: 'hide'
}, 'slow');
}, function() {
$(".stuff").animate({
height: 'show',
opacity: 'show'
}, 'slow');
});
});


很多不错的效果可以访问interface plugin collection. 这个站点提供了很多demos和文档



这些效果插件是位于jQuery插件列表的前面的,当然也有很多其他的插件,比如我们下一章讲到的表格排序插件。



本章的相关链接:




Sort me(将我有序化):使用tablesorter插件(表格排序)



这个表格排序插件能让我们在客户端按某一列进行排序,引入jQuery和这个插件的js文件,然后告诉插件你想要哪个表格拥有排序功能。



要测试这个例子,先在starterkit.html中加上像下面这一行的代码:



<script src="lib/jquery.tablesorter.js" type="text/javascript"></script>


然后可以这样调用不着:



$(document).ready(function() {
$("#large").tableSorter();
});


现在点击表格的第一行head区域,你可以看到排序的效果,再次点击会按倒过来的顺序进行排列。



这个表格还可以加一些突出显示的效果,我们可以做这样一个隔行背景色(斑马线)效果:



$(document).ready(function() {
$("#large").tableSorter({
stripingRowClass: ['odd','even'], // Class names for striping supplyed as a array.
stripRowsOnStartUp: true // Strip rows on tableSorter init.
});
});


关于这个插件的更多例子和文档可以在 tablesorter首页找到.



几乎所有的特件都是这样用的:先include插件的js文件,然后在某些元素上使用插件定义的方法,当然也有一些参数选项是可以配置的



经常更新的插件列表可以从jQuery官方站 on the jQuery site找到.



当你更经常地使用jQuery时,你会发现将你自己的代码打包成插件是很有用处的,它能方便地让你的公司或者其他人进行重用.下一章我们将谈到如何构建一个自己的插件.



本章的相关链接:




Plug me:制作自己的插件



写一个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.




  1. 为你的插件取一个名字,在这个例子里面我们叫它"foobar".


  2. 创建一个像这样的文件:jquery.[yourpluginname].js,比如我们创建一个jquery.foobar.js


  3. 创建一个或更多的插件方法,使用继承jQuery对象的方式,如:
    jQuery.fn.foobar = function() {
    // do something
    };



  4. 可选的:创建一个用于帮助说明的函数,如:
    jQuery.fooBar = {
    height: 5,
    calculateBar = function() { ... },
    checkDependencies = function() { ... }
    };


    你现在可以在你的插件中使用这些帮助函数了:



    jQuery.fn.foobar = function() {
    // do something
    jQuery.foobar.checkDependencies(value);
    // do something else
    };



  5. 可选的l:创建一个默认的初始参数配置,这些配置也可以由用户自行设定,如:
    jQuery.fn.foobar = function(options) {
    var settings = {
    value: 5,
    name: "pete",
    bar: 655
    };
    if(options) {
    jQuery.extend(settings, options);
    }
    };


    现在可以无需做任何配置地使用插件了,默认的参数在此时生效:



    $("...").foobar();


    或者加入这些参数定义:



    $("...").foobar({
    value: 123,
    bar: 9
    });




如果你release你的插件, 你还应该提供一些例子和文档,大部分的插件都具备这些良好的参考文档.



现在你应该有了写一个插件的基础,让我们试着用这些知识写一个自己的插件.



很多人试着控制所有的radio或者checkbox是否被选中,比如:



$("input[@type='checkbox']").each(function() {
this.checked = true;
// or, to uncheck
this.checked = false;
// or, to toggle
this.checked = !this.checked;
});


无论何时候,当你的代码出现each时,你应该重写上面的代码来构造一个插件,很直接地:



$.fn.check = function() {
return this.each(function() {
this.checked = true;
});
};


这个插件现在可以这样用:



$("input[@type='checkbox']").check();


现在你应该还可以写出uncheck()和toggleCheck()了.但是先停一下,让我们的插件接收一些参数.



$.fn.check = function(mode) {
var mode = mode || 'on'; // if mode is undefined, use 'on' as default
return this.each(function() {
switch(mode) {
case 'on':
this.checked = true;
break;
case 'off':
this.checked = false;
break;
case 'toggle':
this.checked = !this.checked;
break;
}
});
};


这里我们设置了默认的参数,所以将"on"参数省略也是可以的,当然也可以加上"on","off", 或 "toggle",如:



$("input[@type='checkbox']").check();
$("input[@type='checkbox']").check('on');
$("input[@type='checkbox']").check('off');
$("input[@type='checkbox']").check('toggle');


如果有多于一个的参数设置会稍稍有点复杂,在使用时如果只想设置第二个参数,则要在第一个参数位置写入null.



从上一章的tablesorter插件用法我们可以看到,既可以省略所有参数来使用或者通过一个 key/value 对来重新设置每个参数.



作为一个练习,你可以试着将 第四章 的功能重写为一个插件.这个插件的骨架应该是像这样的:



$.fn.rateMe = function(options) {
var container = this; // instead of selecting a static container with $("#rating"), we now use the jQuery context

var settings = {
url: "rate.php"
// put more defaults here
// remember to put a comma (",") after each pair, but not after the last one!
};

if(options) { // check if options are present before extending the settings
$.extend(settings, options);
}

// ...
// rest of the code
// ...

return this; // if possible, return "this" to not break the chain
});


Next steps(下一步)



如果你想做更好的javascript开发,建议你使用一个叫 FireBug的firefox插件. 它提供了断点调试(比alert强多了)、观察DOM变化等很多漂亮的功能



如果你还有未解决的问题,或者新的想法与建议,你可以使用jQuery的邮件列表 jQuery mailing list.



关于这个指南的任何事情,你可以写mail给作者或者发表评论在他的日志:blog.



关于这个指南的翻译任何事情,你可以写mail给我或者发表评论在我的日志:blog.



还有什么...


大大感谢John Resig创造了这么好的library! 感谢jQuery community 为John提供了如此多的咖啡和其他的一切!



© 2006, Jörn Zaefferer - last update: 2006-09-12


中文版翻译:Keel - 最后更新: 2006-12-13



jQuery中文入门教程_译自Getting Started with jQuery

2007年11月27日星期二

Google Web APIs 参考中文版

 

内容

1.  概况

1.1  搜索请求
1.2  缓冲请求
1.3  拼写请求

2.  搜索请求格式

2.1  搜索参数
2.2  查询条件
2.3  自动过滤
2.4  约束
2.5  输入输出编码
2.6  安全搜索
2.7  局限性

3. 搜索结果格式

3.1  搜索响应
3.2  结果元素
3.3  目录种类



1. 概况
Back to top

这篇文档详细解释了Google Web APIs函数语法的调用,你可以方便的使用Google Web APIs服务。在文档中,你会学习到以下几个方面:

  • Google的查询语句是怎么工作的。
  • 怎样约束你的查询去获得Google索引中的一部分,例如特殊的语言或国家。
  • 怎样解释通过Google Web APIs服务反馈的搜索结果信息。

你也可以通过Google Web APIs开发者工具包文档来帮助你:

  • GoogleSearch.wsdl - 描述Google Web APIs SOAP 接口的WSDL文件.
  • soap-samples/ - SOAP 消息和响应的范例.
  • javadoc/index.html - Java 库范例文档.

这是一个 beta版的文档. 如果你有任何意见,或者发现了错误,或者有疑问,请联系api-support@google.com .

1.1 搜索请求
Back to top

搜索请求会提交一个查询字符串和一组参数给Google Web APIs服务,并返回一组搜索结果。搜索结果来源于超过二十亿网页的Google索引。

涉及搜索请求的详细交互过程包含在这个文档的搜索请求格式搜索结果格式 章节中。

1.2 缓冲请求
Back to top

缓冲请求会提交一个URL给Google Web APIs服务,并返回Google爬虫程序最后访问的页面的URL内容(如果是可用的话)。

请注意:Google既不是缓冲页面的作者,也不对那些内容负责。

缓冲页面的返回类型是base64编码文本.

1.3 拼写请求
Back to top

拼写请求会提交一个查询给Google Web APIs服务,并为查询返回一个拼写修正的建议(如果是可用的话)。 拼写修正模仿,其行为就像在Google网站上查找一样。

拼写请求服从和其他查询请求相同的查询字符串的限制 。(输入字符串最大为2048字节和10个单词)

拼写请求返回的类型是一个文本字符串。


2. 搜索请求格式
Back to top

2.1 搜索参数
Back to top

这个表格列出了所有的合法的名称和对应的值。这些名称和值能够用于一个搜索请求中,并描述了这些参数将怎样修改搜索结果。

名称

描述

key

由Google提供的,这是你访问Google服务所必需的。Google使用key来验证和记录。

q

(详见 查询条件 章节中的查询语法。)

start

基于零的第一个期望的搜索结果的索引.

maxResults

每次期望查询结果数,最大查询值为10。
注意: 如果你的查询结果没有更多的匹配项,真实的查询结果数可能小于你的请求数。

filter

激活或抑制自动结果过滤,隐藏非常相似的结果和所有来自相同网站主机的结果。 过滤往往是改进终端用户在Google上的使用体验。但是对于你(程序员)的应用程序来说,你最好把这个功能关了。(详见 自动过滤 章节)

restrict

限定在Google Web索引子集的搜索, 例如限定在一个叫'乌克兰'的国家中或者限定在'Linux'主题中 (详见 约束 章节.)

safeSearch
能够在搜索结果中过滤成人内容的一个布尔值. 详见 安全搜索 章节.

lr

语言限定- 限定在一种或多种语言的范围内的搜索.

ie

输入编码 - Google已经不赞成大家使用这个这个参数了,而且这个参数已经被忽视了。所有对API请求都必须是UTF-8编码。 (详见 输入和输出编码 章节)

oe

输出编码 - Google已经不赞成大家使用这个这个参数了,而且这个参数已经被忽视了。所有对API请求都必须是UTF-8编码。 (详见 输入和输出编码 章节)

2.2 查询条件 - <q>
Back to top

默认搜索

默认情况下, Google只返回所有符合那些字符串查询条件的页面。不必在查询条件中写逻辑关系'AND'。记住,查询条件的顺序会影响到搜索结果。

忽略的单词(stop words)

Google 忽略最普通的单词和字符,例如:'where''how' 以及单个的数字和字母。把最普通的单词忽略掉被称为“忽略的单词”(stop words)

如果你想阻止Google把某些单词忽略掉,可以通过加双引号来解决,例如'to be or not to be'这个短语。

特殊字符

通常,所有非字母字符在搜索中会被当作分隔符来处理。

但以下情况除外: 双引号('), 加号(+), 减号或连字符(-), 以及&符号(&). 

&符号(&) 会被当作另一个包含在查询词条中字符来处理。 这个特例字符符合以下章节列出的搜索特性。

特殊查询词条

Google支持一些特殊的查询词条的使用,允许用户或搜索管理者去访问Google搜索引擎的附加功能。

特殊查询功能

查询范例

描述

包含查询词条
Star Wars Episode +I

如果一个普通的单词是你搜索所必需的,你就在这个单词前放上'+'号。 

排除查询词条
bass -music
你可以在那个要排除的单词前放上'-'号,这样就可以在搜索结果中去除这个单词。

短语搜索
'yellow pages'

如果要搜索一个完整的短语,可以通过加上双引号或用连字符连接这些单词来完成。词组用这种方法标注,在搜索结果中就会显示在一起,就像你输入的那样。

注意: 在一个短语中,你可能需要用'+'号来强制将普通的单词连接起来。

布尔 或(OR) 搜索
vacation london OR paris
Google搜索支持'OR'布尔操作,用大写OR来连接词条A和B,反馈的页面将既包含A又包含B。

网站限定搜索
admission site:www.stanford.edu

如果想要搜索的网站是你知道的那个网站,但是不确定是否有需要的信息在那个网站中,你能用google来指定只在这个网站中搜索。

搜索时,在查询词条后跟'site:' 然后写上主机名。

注意:排除操作符('-')号可运用到查询条件中,它所起到的作用是把某些网站从搜索描述中排除出去。
注意:
每次查询只支持一个site:

日期限定搜索
Star Wars daterange:2452122-2452234
如果你想限定搜索到的结果是在一个特殊的日期范围内发布的,那么你可以用 'daterange: '查询条件来完成它。 'daterange:' 查询条件必须用以下格式:

daterange:<start_date>-<end date>

其中

<start_date> =开始的时间(公历)
<end_date> = 结束的时间(公历)

公历日期是从公元前4713年1月1日开始计算的天数。 例如, 公历2001年8月1日天数为 2452122。

标题搜索(term)
intitle:Google search
如果你用'intitle:'来作为查询条件, Google搜索结果会限定在标题中。 注意在 'intitle:'和查询的单词之间没有空格。

注意:'intitle:'放在每个你查询的单词前就等于将'allintitle:'放在你的查询条件前。

标题搜索(all)
allintitle: Google search
在查询条件前用 'allintitle:',将限定其结果来自于在标题中包含所有查询条件的网站。

URL 搜索 (term)
inurl:Google search
如果你用 'inurl:'来作为查询条件 , Google 搜索结果会限定在URL中。 注意在 'inurl:' 和查询的单词之间没有空格。

注意: 'inurl:' 只作用在查询单词上 , 不作用在URL结构上。 特别是, 它会忽略标点符号,并忽略只用一个单词写在 'inurl:'后面的情况. 查询多个单词在URL中, 应为每一个单词都使用'inurl:'符号 。

注意:'inurl:'放在需要查询的每一个单词前就等于将'allinurl:' 放在需要查询的条件前

URL 搜索 (all)
allinurl: Google search
在查询条件前用'allinurl:' 将限定其结果来自于在URL中包含所有查询条件的网站。

注意: 'allinurl:'只作用在 查询单词上 , 不作用在URL结构上。特别是,它会忽略标点符号.  因此, 'allinurl: foo/bar' 将限定在包含具有'foo'和'bar'的URL的结果集中,但不会将包含字符串'foo/bar'(包括斜杠)的URL作为结果集,或者将其作为特殊的词序。目前没有方法强制这些约束。

纯文本搜索 (all)
allintext: Google search
在查询条件前用 'allintext:' 来限定那些满足所有查询单词的纯文本的结果, 忽略链接,URL,和标题匹配。

纯链接搜索 (all)
allinlinks: Google search
在查询条件前用 'allinlinks:'来限定那些满足所有查询单词,包含URL链接的页面。

文件类型过滤
Google filetype:doc OR filetype:pdf
前缀'filetype:' 前缀'filetype:'会立即反馈只包含指定扩展名的文档的查询结果。  注意:在'filetype:'和指定的扩展名之间没有空格。

注意: 通过增加更多的'filetype:' 来搜索出多种类型的文件。

文件类型排除
Google -filetype:doc -filetype:pdf
前缀'-filetype:'将排除掉指定扩展名的文档。  注意:在'-filetype:' 和指定的扩展名之间没有空格。

注意:通过增加更多的'-filetype:'来排除掉多种类型的文件。

网页文件信息
info:www.google.com
前缀'info:' 会根据指定的URL来返回单个结果(如果这个URL在索引中存在)。

注意:当使用这个特殊的查询条件时,不能使用其他指定的查询条件。

主页链接
link:www.google.com
前缀'link:' 列出连接到指定网页的所有网页。注意:在'link:' 和网页URL之间不能有空格.

注意:在使用这个查询方法的同时不能使用其他查询条件。

相关链接
related:www.google.com
前缀'related:'列出了与指定网页相似的网站页面。 注意:在 'link:' 和网页URL之间不能有空格。

注意:在使用这个查询方法的同时不能使用其他查询条件。

缓冲结果页面
cache:www.google.com web
前缀'cache:'会返回缓冲在google服务器中的HTML版本指定网页文档。('Google搜索爬虫器'会将抓取的网页临时存储在google系统中。) 注意 在'cache:' 和网页URL之间不能有空格。

注意:如果你在查询中包含其他的关键字,Google将会在缓冲的文档中高亮显示。

2.3 自动过滤 - <filter>
Back to top

这个<filter> 参数会引起Google把搜索的结果再次过滤掉一些。这个是为有经验的用户准备的。但对于你的应用程序来说, 为了得到完整的搜索结果,你最好把这个过滤参数关闭。

当过滤参数打开的时候,过滤器会做以下工作:

  • Near-Duplicate Content Filter = 如果重复的搜索结果包含同样的标题和内容片断,只会有一个结果会反馈回来。
  • Host Crowding = 如果重复的搜索结果来自于同一个网站主机,那么只有前2个会反馈回来。

2.4 限定 - <lr> <restrict>
Back to top

Google 提供了一些功能,能搜索一些Google的网页索引预先确定的子集。 使用的参数就是lr restrict 。

<lr> - 语言限定

在特殊的语言范围内搜索文档,可以使用<lr>参数,以下就是语言参数列表:

语言           <lr>值

阿拉伯语  lang_ar
冰岛语      lang_is

中文简体  lang_zh-CN
意大利语  lang_it

中文繁体  lang_zh-TW
日语        lang_ja

捷克语     lang_cs
韩语        lang_ko

丹麦语      lang_da
拉脱维亚语 lang_lv

荷兰语       lang_nl
立陶宛语    lang_lt

英语          lang_en
挪威语       lang_no

爱沙尼亚语 lang_et
葡萄牙语   lang_pt

芬兰语        lang_fi
波兰语       lang_pl

法语         lang_fr
罗马尼亚语 lang_ro

德语         lang_de
俄语         lang_ru

希腊语      lang_el
西班牙语   lang_es

希伯来语   lang_iw
瑞典语       lang_sv

匈牙利语     lang_hu
土耳其语    lang_tr

<restrict> - 国家和主题限定

Google允许你搜索一个或多个国家的网站信息 , 这是通过顶级域名服务和服务器IP地址所在的地理位置确定的。

自动的国家子集当前支持以下这些国家: (不列举了,详细信息请见:有关日志)

Google同时也有4个主题限定:

主题

<restrict>   值

美国政府      unclesam

Linux           linux

Macintosh     mac

FreeBSD        bsd

结合 <lr>和<restrict> 参数

使用lrrestrict参数的搜索请求支持布尔操作,见下表:(按优先级排序).

注意: 如果在搜索请求中同时使用lrrestrict参数,子集字符串将用'AND'逻辑结合起来。

布尔操作 范例  描述 :

布尔值 NOT [ - ]

-lang_fr

移除所有紧跟在'-'操作符后面的子集的结果。

范例中限定了所有的法语结果将会去除。

布尔值 AND [ . ]

linux.countryFR

反馈'.'操作符左右两端的子集的交集(intersection)的结果。

范例中限定了所有既是'linux'主题又是法国地区信息的结果集。

布尔值 OR [ | ]

lang_en|lang_fr

反馈'|'操作符两端子集的并集。

范例中限定了既是英语又是法语的,所有匹配的查询结果。

括号 [ ( ) ]

(linux).(-(conutryUK|countryUS))

在括号里面的一个子集字符串中的所有查询条件将会比括号外的先估算,使用括号来调整查询条件估算的顺序。

范例中 限定 了查询结果为:在Linux子集中但既不是美国地区信息子集又不是英国地区信息子集的所有结果。

注意:限定参数中,空格是不允许的。

2.5 输入和输出编码 - <ie>, <oe>
为了支持在多语言和字符编码中搜索文档,Google Web APIs用UTF-8码来执行所有的请求和响应。 在客户端请求查询时,参数<ie>和<oe>是必须的,但值会被忽略。客户端应该把所有的请求数据编码成UTF-8码,同时期待结果集也是UTF-8码的形式。

2.6  安全搜索 - <safeSearch>
许多Google用户希望没有成人网站包含在搜索结果中, Google安全搜索特性 掩蔽了包含这种信息的网站,将其排除在搜索结果中。没有任何过滤方法是100%正确的,google过滤方法使用了先进的具有专利的技术,它能检查关键字,短语,URL和公开的目录分类。

如果你发现在你的搜索结果中的某些网站包含讨厌的内容,甚至涉及安全内容的,请将网站URL发送到safesearch@google.com,Google会进行调查。

2.7  限制
有一些重要的限制你是应该知道的,由于Google当前基础设施是为终端用户优化的,所以,将来我们希望为Google Web API开发者的提高限制等级。

结构                                限制

搜索请求长度                     2048 bytes

查询最大单词数                  10

最大site:条件数目                每次搜索请求1个

每次查询最大结果数            10

<start> + <maxResults>的最大值   1000

3. 搜索结果格式

3.1  搜索响应
每次你提出一个搜索请求给Google服务,会有一个响应反馈给你. 这章描述具体描述反馈值的含义.

<documentFiltering> - 一个布尔值,表示是否在搜索结果中执行过滤. 如果你请求过滤并过滤实际情况也发生了,这个值将是'true'.

<searchComments> - 显示给最终用户的一个文本字符串。 当你在搜索结果中发现有最普通的信息时,其实是让你注意:“被忽略的单词(stop words)”会自动从搜索中被删减掉。 (常见的有:'and'和'as'.')

<estimatedTotalResultsCount> - 注意:估计的数值可能高于或低于实际的结果数.
注意:估计的数值可能高于或低于实际的结果数.

<estimateIsExact> - 估计的数值实际存在.是布尔值.

<resultElements> - <resultElement>数组项,这个数组项符合真实的搜索结果列表.

<searchQuery> - 这是为搜索结果存在的 <q>值.

<startIndex> - 在<resultElements>中第一个搜索结果的索引,(索引是从1开始的)。

<endIndex> - 在<resultElements>中最后一个搜索结果的索引,(索引是从1开始的)。

<searchTips> - 为终端用户显示一串字符串,告诉终端用户一些使用Google的建议和技巧。

<directoryCategories> - 一个<directoryCategory>数组项. 这是为了让搜索符合 ODP(开放式目录管理)的目录规则。

<searchTime> - 文本,浮点数,是指总的反馈搜索结果的时间,精确到秒。

3.2  结果元素
<summary> - 如果搜索结果在ODP目录下有列表,ODP摘要会以文本字符串形式显示在这里。

<URL> - 搜索结果的URL, 返回URL绝对路径的文本类型。

<snippet> - A 显示查询到的上下文的片断 ,这个是HTML格式的,通常在其中包括<B>标记,注意: 查询条件不总是显示在片断中. 注意: 查询条件将会在结果中加粗高亮,行断点也将包含在适当的文本中。

<title> - 搜索结果的标题,返回HTML格式。

<cachedSize> - 文本(Integer + 'k'), 是指URL的缓冲版本是可用的,size是KB(千字节)。

<relatedInformationPresent> - 布尔值,是指'related:'查询条件支持这个URL。

<hostName> - 当过滤发生的时候,在相同主机结果中,顶多只有2个结果会返回,当这种情况发生的时候 来自那个主机的第二个结果元素(resultElement)在参数中包含有主机名.

<directoryCategory> - 见下条.

<directoryTitle> - 如果这个结果元素(resultElement)的URL包含ODP目录,显示在目录中的标题会在此显示一串文本字符串,注意:directoryTitle可能和<title>的URL不同。

3.3  目录类别
<fullViewableName> - 文本, 为当前的ODP类别包含ODP目录名。

<specialEncoding> - 指定目录信息编码方案。


?nbsp;2002 Google, Inc. All Rights Reserved.


Google Web APIs 参考中文版

测试图片

 

2007年11月19日星期一

Blog选址,可实现通过xml-rpc标准进行远程离线发布的Blog服务商(BSP)测评 - 文化消费者 - 博客园

 

Blog选址,可实现通过xml-rpc标准进行远程离线发布的Blog服务商(BSP)测评 2006-2-13 21:45

国内开放API,即可实现通过xml-rpc标准进行远程离线发布的Blog服务商(BSP)测评
我这个人很懒,可以设置远程发布网志写的blog是绝对不会跑到控制台里来写.
既看起来大方,没有广告,又能完美地通过各种常用的客户端软件发布的BSP没有。
Blogbus差了那么一点点(把标题都用日期来代替),算是目前我用起来最舒服的了。Bokee对05年6月以前注册的用户虽然会显示出错,但仍然可以发布,对后注册的用户则彻底不好用,发信问他们的技术支持也没有回音。
1.Blogbus API: http://rpc.blogbus.com/blogger  (/blogger as endpoint)
Blogbus提供基于 XML-RPC 的交互式 API(Application Program Interface) ,任何用户都可以通过此API从Flickr等支持Blogger API的网站发送内容到BUS上,这是blogbus提供的又一项个性化的服务。打开Flock浏览器Tools\\Options中的\"Blogging\"选项,单击\"+\"号,Flock Blog设置向导会让你填入你的Blog地址,点击\"Next\"后,Flock会提示无法侦测你的Blog设置,此时点击\"Cancel\"进行
手动设置:在Blog API设置中,将\"XML-RPC API\"选项设为\"Blogger\",然后填入你的Blogbus用户名,
在\"Access Point\"一栏填入Blogbus的API地址(http://rpc.blogbus.com/blogger),之后会让你输入你的Blogbus用户名和密码,通过检测后会出现\"Blog Setup Compete!\"的信息。然后后就可以使用Flock书写和发布你的Blog了,随想随录,随时发布,免去了登录Blogbus的繁琐,节省了发布时间。 Blogbus还提供了一个关于“如何通过API从flickr调用图片到blogbus”的帮助文档。
缺点:发现blogbus的API把标题都用日期来代替,可见此功能发布时测试的不完善
2.Bokee and blog client的站点配置
E.g., blogbuddy setting (Other clients are also ok):
type:blogger 站 点 名: publishblog.blogchina.com  端 口 号: 80  相对路径: /xml-rpc  字 符 集: GB2312
http://publishblog.bokee.com/xml-rpc //ok for API: Blogger
3. blog.run2me.com
靠近我-似曾相识-从Flickr向Run2me发图片日志
(Source: http://blog.run2me.com/timesite/archive/2005/11/18/12054.aspx)
从Flickr向Run2me发图片日志
Posted on 2005-11-18 12:15 似曾相识 阅读(225) 评论(0)  编辑 收藏
相信有不少朋友都在用Flickr相册,对于Blogger.com、Livejournal、Typepad等可以直接添加,但对于.TEXT的Blog程序,却没那么直接,在这里教你Run2me等使用.TEXT程序的Blog...
⑴. 在Run2me个人首页,[管理] - [选项] - [Configure] 确认已勾选“Allow Web Service Access” [Save]
⑵. 登录你的Flickr,Your Account,Blogging - Your blogs- Set up a new blog-What kind of weblog do you have?
下拉列表中选“MetaWebBlogApi Enabled Blog”(如图)- [NEXT] 下一步
⑶. Enter your login details
API Endpoint:输入:http://blog.run2me.com/youraccount/services/MetaBlogApi.aspx
(注:youraccount 替换为自己的用户名)
Username:  Password: 分别输入自己的用户名和密码,[NEXT]
如图(Omitted):[NEXT] 下一步,如果操作无误,则显示下图
注:Label是自己定义这个Blog标签,方便自己识别。如我在Donews的Label定义为 似曾相识(Donews)
这样,以后在Flickr浏览图片时,点击图片上方[Blog this] ,就可以发图片日志了。
其它使用.TEXT程序的Blog,如Donews Blog、CSDN Blog、天极Blog等,只要把第三步中提到的http://blog.run2me.com/youraccount/services/MetaBlogApi.aspx中Blog.run2me.com换为对应的Blog地址即使,如CSDN为:http://blog.csdn.net/youraccount/services/MetaBlogApi.aspx
Sorry,因Donews、CSDN Blog在后台管理里并没有开放“Allow Web Service Access”的选项,所以即使添加成功,也不能从Flickr向Donews、CSDN Blog发图片。Run2me、BCchinese等可以使用Flickr的Blog this功能。
--Evaluation:
Donews,CSDN Blog have not open their API yet
Run2me is only a personal site that is untrustable.
http://blog.yesky.com/ too many ads.
4. cited from 网摘的自动发布
(Source: http://blog.podlook.com/archive/2005/06/01/294.aspx)
和做TrackBack功能时一样,遇到的最多的问题是标准化的问题,太多的网站不支持像TrackBack, BlogAPI这样在Blog初始非常基本的功能。现在的Blog,从某些角度讲可以说是有倒退。
言归正传,我们用的是最标准的BlogAPI,理论上大多数Blog系统都支持,如果你是自己有一个站点的话,应该问题不大。但如果使用一些Hosting如Donews, blogChina, blogBus, blogcn都不行(没有接口)。下面列出一些做过测试肯定可以的:
http://blog.bcchinese.net http://blog.bcchinese.net/[user]/services/metablogapi.aspx
http://www.blogme.cn http://www.blogme.cn/xmlrpc.php
http://computer.mblogger.cn http://computer.mblogger.cn/services/[user]/metablogapi.aspx
Blogme: Blog支持以网页方式、xml-rpc和邮件方式提交,xml-rpc支持blogger、MT、metaWeblog三种API,后两者可以支持网站的分类系统,推荐使用。
--Evaluation:
P.S.
bcchinese has too many ads too and seems the site is not located in China, which is easy to be blocked.
mblogger account can not be registered!
blogme has too many ads, and can not setup the configurations.
blogcn didnot provide api, i.e.,xml-rpc service.

5.个性的Space空间:

a. Creat BlogIt.url
[InternetShortcut]
URL=http://spaces.msn.com/blogit.aspx

b.Space PowerToy三大工具
MSN Spaces官方小组发布了三个Space增强工具:
媒体播放器工具
自定义HTML工具
界面设置工具
http://www.siteexperts.com/blogging/editit.htm
msn spaces日志在线编辑器

c.MetaWeblog (MovableType) API for MSN Spaces now widely available
unable to parse the xml response
不过我到最后一步的时候,出现了一个错误,w.bloggar提示说:Unable to parse the XML response. Parser Reason:Invalid at the top level of the document.
You must use https instead of http to make it work. Complete url is https://storage.msn.com/storageservice/MetaWeblog.rpc

Type https://storage.msn.com/storageservice/MetaWeblog.rpc in Server URL API
Type your msn space name as userid for e.g. if the space url is http://spaces.msn.com/members/ket000 it will be ket000
For password Type in secret word that you have used for turning on email publishing. To get the steps on how to turn on this, see this entry from Carnege4Life's Space blog hosted on MSN Space and press next.
http://spaces.msn.com/ket000/Blog/cns!1pm_peVcRrtQtZAc4WaU3FBA!278.entry

http://spaces.msn.com/carnage4life/Blog/cns!1piiOwAp2SJRIfUfD95CnRLw!1046.entry
Posting to your blog on MSN Spaces using W.Bloggar
http://spaces.msn.com/carnage4life/Blog/cns!1piiOwAp2SJRIfUfD95CnRLw!1045.entry
Posting to your blog on MSN Spaces using Blogjet

---------------
[Reference1](zz)为自己的另一个Blog选址
我对blogbus提供的服务 很满意(没有模板适合我...),所以我要建另一个blog并不是要搬迁。我的blog标题所写的“测试中”,已经不是测试blogbus是否好用了(事实上我认为 blogbus比国内外的大部分BSP都出色,就凭它的tag和export系统就把我征服了)。我一直都在寻找一个比较稳定的体系,通过这个体系我可以我组织信息的获取、发表个人看法、获得系统的知识、提高个人能力等...我不知道该怎么表述,大概的意思就是这样,或许可以说是一个个人信息系统吧。在 blogbus这里的blog是我在这个体系里的一部分,而我已初步将其定位在关注<1>web2.0、<2> eBusiness和<3>一些特别的事上。另外,为了实实在在地提高英语写作能力,我打算通过blog这种形式来达到较熟练地运用英语的水平。又,根据GTD中“找一个好的工具能激发工作的动力”这个理论,我决定再在国外的BSP上建一个英语blog。这个英语blog上要写些什么暂时还没详细的计划,不过肯定把它当作“垃圾桶”,写些Personal的事,也算是对在这个Blog的补充吧。
于是我花了一点时间找一个免费的BSP,结果嘛...还真难找。被封的就免了,省得用代理;有的停止注册了,可惜;有的有广告,我不喜欢...剩下的选择有:blogneo、iblog.com、wordpress.com和innereyes。
blogneo给人的感觉很不稳妥,倒不是说它系统不稳定,只是它除了给我一个帐号外,什么都没提供,help、接口什么的都没有,它是哪条道上的也不说说。我实在放心不下,怕它什么都不说的忽然关闭了,同时也不满意它的服务,所以决定走人。
innereyes,wordpress引擎,提供了包括FTP、Email、数据库连接等一大堆功能。无语,高兴死了,赶紧注册了一个。可是中文支持有问题,名字也不怎么好,官方主页略显简陋,一点时尚的感觉都没有。先占个坑吧,以后再说...
iblog.com给人印象很好,还提供多国语言。用英语会给你xxx.iblog.com,用中文会给你xxx.iblog.cn,中文的帐户不能在外文的blog上登陆,反之亦然。它提供的系统很好,模板也很漂亮,我几乎就打算在那儿安家了,然后...
然后冒出来个wordpress.com!光是名气就让我无法拒绝了。听说用Flock可以免邀请注册,赶紧下了搞来一个帐号。哈!爽!在wordpress.com上有了个Blog!嗯?不对,怎么整一个blogneo似的,除了给你个帐号就什么都不提供了?晕!模板也很少,插件、主题不知道往哪里放,用着就不爽!
结果我决定用innereyes。本来iblog.com也很好,只是它没有接口,无法使用客户端写blog。我搞错了!iblog.com使用的是plog系统,接口是MetaWeblog,好不容易才发现的......innereyes凭着 wordpress引擎这个优势,配合FTP,基本上就跟自己建服差不多了(吧...我瞎猜的)。它对中文的支持与我的目的并不冲突,OK!
接下来还有不少工作要做,两个blog的内容都要根据"weblog设计十大失误"一文修改一下,模板也要改,Blog的定位还要再具体些。所有的工作预定在11月13日(也就是我在这里发的第一篇blog的三个月后)之前完成。祝自己好运!
Flock的出现对我们思路的扩展有很多帮助,通过开放的API和源码,Web2.0的服务是可以这样组合的。让我们(在这个周五)畅想一下:
国内的网摘们(hexun、sina、sohu等)、相册们(yupoo、foto等)开放标准的API(365key、igooi已经开放),方便第三方开发者使用。
国内的BSP(BlogBus、Donews等)开放或加载Blog API,让客户端软件可以方便操作Blog。
国内的浏览器们(Maxthon等)和国内Web2.0各服务商合作,捆绑推销产品和服务
最后的情景会不会是这样,我可以在Maxthon上面收藏网页到365key、发图片到yupoo、用yupoo的图片在Donews写Blog,而这一切都在Maxthon一个产品里面完成?!
p.s.发现Flock网站使用的程序是ruby的,没准Flock.com以后会变成基于Ruby on Rails的AJAX项目~
----------------
[Reference2]国内主要Blog站点所在位置 BSP
由于电信和网通公司之间的网络互联问题,造成电信服务器和网通服务器之间访问速度不甚理想,Blog托管站点所在的位置很大程度上影响了浏览访问速度,故整理了国内近50家Blog网站主机所在位置...
博客名称.网址 所在位置
Donews http://blog.donews.com 北京市
博客网 http://www.bokee.com 北京市
和讯博客 http://blog.hexun.com 北京市
博客动力 http://www.blogdriver.com 天津网通
天涯博客 http://www.tianyablog.com 海南电信
歪酷博客 http://www.yculblog.com 上海电信
中国博客网 http://www.blogcn.com 浙江杭州
AnyP http://www.anyp.cn 广东佛山
Blogbus http://www.blogbus.com 上海电信
你的博客网 http://www.yourblog.org 上海电信
柒零博客 http://blog.houhai.com 天津铁通
博客中国人 http://www.blogchinese.com 湖北武汉
博客天下 http://www.blog.com.cn 北京网通
博客天下 http://www.139.com 广东深圳
我爱博客网 http://www.52blog.net 上海电信
VV博客网 http://www.vvblog.com 河南新乡
敏思博客 http://www.blogms.com 广东广州
好博客 http://www.blogok.net 山东网通
阳光博客网 http://www.shineblog.com 江苏电信
BlogCup http://blogcup.com 广东深圳
我的博客 http://www.5dblog.com 浙江杭州
博客之家 http://www.blogerhome.com/ 江苏徐州
博客人 http://www.bloger.com.cn 江苏苏州
神州博客 http://www.blogercn.com 内蒙古
博客园 http://www.cnblogs.com 江苏扬州
博客堂 http://blog.joycode.com 上海电信
一起来 http://www.i170.com 广东深圳
悠悠易 http://www.uuyi.com 天津铁通
艾幽博客 http://www.iiu.cn 北京市
阿Q博客 http://www.a-q.cn 北京市
移动博客 http://www.moblog.cn 北京市
中华部落阁 http://www.mblogger.cn 上海电信
博客之家 http://www.bloghome.cn 山东淄博
博客之家 http://www.blogyes.net 山东淄博
天极博客 http://blog.yesky.com 北京市
天极博客 http://blog.chinabyte.com 北京市
赛迪博客 http://blog.ccidnet.com 北京市
CSDN Blog http://blog.csdn.net 北京市
博客风 http://www.blogwind.com 广东汕头
靠近我 http://blog.run2me.com 上海电信
博客物语 http://blog.discloser.net 上海电信
播客天下 http://www.imboke.com 浙江杭州
Blogku http://www.blogku.com 四川电信
中国播客网 http://www.vvlogger.com 北京市
好博客 http://www.haoblog.com 北京电信网通
你好Blog http://www.nihaoblog.com 上海电信
91Blog http://www.91blog.com 上海电信
[Reference3]
blog程序的考量标准
看到一个国外的网站对目前比较流行的blog进行了综合考量,非常详细
http://www.asymptomatic.net/blogbreakdown.htm
受考评的系统有b2Evolution,bBlog,BLOG:CMS,Blojsom,Blosxom,Expression Engine,MovableType,Nucleus,Pivot,pMachine Pro,Serendipity,SPIP,.Text TextPattern,WordPress。
我把它的考评标准简单翻译一下:
Current Version 当前版本号
Home URL 主页地址
Trial URL 试用地址
License 软件协议
User Community 用户社区
Documentation 在线文档
Sample Sites demo 简单演示
Cost (US$) 价格(美元)
Minimum Server Requirements 最小系统要求
Localization 默认语言
Multilingual 多国语言支持
Data Storage 数据存储方式
Max. Weblogs 最大blog数目
Multiple Sites 是否支持多站点
Post Ordering 文章排序方式
Categories 分类方式
Subcategories 是否支持子分类
Keywords 是否支持关键字索引
Default Post Fields 默认输入区域数目
Max Post Fields 最多的输入区域
Post Editor 是否允许编辑
Draft Mode 是否支持草稿模式
Post API Support 是否支持接口
Post Moderation 是否支持管理审核
Post Pings 是否支持ping
Bookmarklets 是否支持书签
RSS Output 是否支持rss输出
Atom Output 是否支持atom输出
Comments 是否支持评论
Comment Spam 是否支持评论过滤
Comment RSS 评论是否支持rss输出
Template Storage 模版是否可以存储
Template Tagging 模板标签库
Edit Templates Online 是否可以在线编辑模版
Template Expert 是否可以导出模板
Edit Templates Offline 是否可以离线编辑模版
Template Conditionals 是否支持为分类或作者单独定制的模版
Open Registration 开放注册?
User Security 用户权限
Trackback 是否支持trackback?
Pingback 是否支持pingback?
RSS Aggregator 是否可以读取其他站的RSS
Forum 是否支持论坛形式
File Editor 文件编辑
CSS Editor CSS 编辑
Plugins/ Extensions 是否支持插件
Plugin Directory 是否有插件目录
Visitor Logs 访问记录
Referrer Logs 来源记录
Imports From 可以导入其他blog系统数据
User Profiles 是否有用户资料
SEF URLs 是否支持friendlyURL
Thumbnails 自动生成缩略图
Category Images 分类图片
Skin Switch 支持即时换风格
Cross-Post 是否支持同一文章放在多分类里
Linkroll 是否支持外部链接链
Password Posts 是否可以设置浏览密码
Blog By Email 是否支持Email更新blog
[Reference] 月光的BLOG http://blog.yam.com/williamlong
1.免費中文博客服務評測 本文介紹了國內外主要免費博客服務Blog Service Providers (BSP)的個人評測,為了進行相關測試,每個Blog我都申請了一個站點進行測試,速度測試以南方的中國電信線路為準。
對于有主機空間的Blogger來說,可以參見另外一篇文章“2005年BLOG程序評點”,裏面講的是如何使用各類程序搭建自己的Blog,我這裏主要說的是沒有主機空間的用戶,如何選擇好的Blog服務系統,這是很多人的難題,我個人感覺,用戶體驗是最重要的。其中包括,速度要快,廣告要少,模板要多,使用要簡單,域名要易記。下面是我對目前主要博客服務商的一些評測。
Blogger - http://www.blogger.com 演示地址 http://williamlong.blogspot.com : 提到Blog,不得不提一下世界使用最多的Google推出的blogger.com。其有中文界面,頁面極為簡潔,符合Google的風格,在全球使用量驚人,可惜一直被國內屏蔽,如果其被解封的話,那選擇博客服務的首選。
Yahoo - http://360.yahoo.com 演示地址 http://360.yahoo.com/williamlong : Yahoo推出的博客服務,還處于Beta測試階段,目前沒有中文界面,因此就不介紹了。
MSN - http://spaces.msn.com 演示地址 http://spaces.msn.com/members/williamlong : 巨頭微軟提供的博客服務,有點結合了主頁空間的感覺,可以放相冊和音樂,速度馬馬虎虎,就是其日誌的Url地址實在太不友好了。
蕃薯藤 - http://blog.yam.com 演示地址 http://blog.yam.com/williamlong : 臺灣最大的Blog服務商,程序用的是世界最流行的Movable Type,廣告非常少,頁面也很清爽,Url地址也很容易記憶,速度還算湊合,看來選擇Movable Type的確是明智的選擇。不足之處是每次發表一篇文章,頁面都要重建一次。
博客中國 - http://www.blogchina.com 演示地址 http://williamlong.blogchina.com :是一個比較老牌的博客服務商,早期用的Plog程序做服務,感覺還可以,後來就慢慢變質,收購了Blogdriver.com,名字變成了Bokee.com,服務卻越來越不行了,速度也慢的要死。
中國博客 - http://www.blogcn.com 演示地址 http://williamlong.blogcn.com : 也是個老牌的博客服務商,木子美發家的地方,其二級域名是假二級域名,實際進行了轉向,很不爽,博客程序使用Oblog打建,不是很專業,速度也不爽。頂部有一橫條廣告,頁面上還有懸浮廣告,其特色據說是女孩子較多,模板比較女性化。
Blogbus - http://www.blogbus.com 演示地址 http://williamlong.blogbus.com : 據說是中國首個推出付費博客的服務商,不過也提供免費服務。博客首頁面竟然是零廣告,非常清爽,博客日誌頁面底部有橫幅廣告,博客訪問速度也快,看起來是個很專業的博客服務商。缺點是空間太小,免費用戶衹有2M的空間,收費用戶可以使用最大100M空間,還可綁定頂級域名,也算是物有所值吧。
DoNews - http://blog.donews.com 演示地址 http://blog.donews.com/williamlong : 以IT寫作為主的博客服務後起之秀,系統用.Text搭建,速度挺快,首頁廣告較少,衹有DoNews導航鏈接,最終日誌頁面底部有窄告的廣告,閃來閃去地很不美觀。缺點是沒有二級域名,模板少,Url地址是動態地址,不好被搜索引擎索引。
CSDN - http://blog.csdn.net 演示地址 http://blog.csdn.net/williamlong : 和DoNews一樣使用.Text搭建,作者以程序員為主,廣告少,模板也少,沒有二級域名,頁面底部有CSDN的導航條。
和訊博客 - http://blog.hexun.com 演示地址 http://blog.hexun.com/williamlong :博客服務的後起之秀,通常認為其以財經博客為主,博客界面較幹凈,廣告比較少,可惜沒有個人的二級域名。
歪酷博客 - http://www.yculblog.com 演示地址 http://williamlong.yculblog.com : 速度還可以,有二級域名,Url地址對搜索引擎友好,並且可以修改模板的HTML源代碼,不足之處是每個管理操作都要輸入驗證碼,域名也怪怪的,不好記憶。
新浪博客 - http://blog.sina.com.cn 演示地址 http://blog.sina.com.cn/u/1494759712 : 沒有二級域名,Url地址極不友好,很難記住,首頁鏈接的一大堆“名人博客”卻有短地址,說明這個服務商非常勢利。訪問速度雖快,但博客服務很不專業。
搜狐博客 - http://blog.sohu.com 演示地址 http://williamlong.blog.sohu.com :二級域名是假二級域名,會自動跳轉到 http://blog.sohu.com/members/williamlong,不爽。不過頁面廣告較少,衹在底部有搜狐的廣告。
網易博客 - http://blog.163.com 演示地址 http://williamlong.blog.163.com :廣告少,速度還可以,頂部有網易LOGO,博客的Url地址不友好。
TOM博客 - http://blog.tom.com 演示地址 http://williamlong.blog.tom.com : 不僅僅二級域名是跳轉的,而且跳轉地址不友好,頂部有巨幅TOM導航頁面,中間有左右漂浮廣告,底部也有廣告,總而言之,就是滿屏廣告亂飛,頁面一塌糊塗。
mblogger - http://www.mblogger.cn 演示地址 http://williamlong.mblogger.cn : 二級域名會自動跳轉,也是.Text搞的,網站首頁看起來不美觀,好像個人主頁似的,感覺不很正規。
2.免費主頁空間服務評測 做主頁比做博客復雜一些,但靈活度就大多了,我這裏介紹的大多是國外的免費主頁空間,因為國外的空間雖然經常被封,但較為穩定,少有關門的,國內的則大部分都關了,而國外的Angelfire、Tripod、GeoCities等卻都一直存活到現在,說明別人的贏利方式很多,經營管理不錯。
下面是我認為幾個不錯的免費個人主頁的提供商。
geocities - http://geocities.yahoo.com
DEMO URL: http://www.geocities.com/williamlong
說明:大名鼎鼎的地球村,15MB空間,每小時限制流量4.2MB,可惜每頁右邊都有一個討厭的框架廣告,長期被封中。
fortunecity - http://www.fortunecity.com
DEMO URL: http://williamlong.fortunecity.com
說明:容量是25MB空間,每月流量是3GB,支持FTP。頁面頂部和底部都有fortunecity的橫幅廣告。
Tripod - http://www.tripod.lycos.com
DEMO URL: http://williamlong.tripod.com
說明:20MB空間,支持Blog和照片,每頁頂部有廣告。每月有流量限制。
Angelfire - http://www.angelfire.lycos.com
DEMO URL: http://www.angelfire.com/me/williamlong
說明:20MB空間,和Tripod幾乎完全一樣。衹有頂部有一個angelfire的廣告,流量有限制。
Freewebs - http://members.freewebs.com
DEMO URL: http://www.freewebs.com/williamlong
說明:100MB空間,每月衹有500MB流量,限制可太厲害了。
Infoseek - http://isweb.www.infoseek.co.jp
DEMO URL: http://williamlong.hp.infoseek.co.jp
說明:日本的100MB空間,好象沒有流量限制。
AOL - http://hometown.aol.com
DEMO URL: http://hometown.aol.com/williamlone
說明:12MB空間,頂部廣告,可以FTP。
中華網 - http://home4u.china.com
DEMO URL: http://williamlong.home4u.china.com
說明:免費空間是10M。沒有廣告,不限制流量,速度快的出奇,不過衹能WEB上傳,而且上傳的文件需要被審核才能看到。
多來米 - http://diy.myrice.com
DEMO URL: http://williamlong.diy.myrice.com
說明:首頁頂部有廣告,還有彈窗,很不爽。

Blog选址,可实现通过xml-rpc标准进行远程离线发布的Blog服务商(BSP)测评 - 文化消费者 - 博客园

2007年11月18日星期日

EditPlus v2.12 使用技巧集萃

 

Liangjh@CCF
------------------------------------------------------
技巧中,在编译器集成例子中参照了部分官方的文献。有几篇是从网上搜集来的,这里我注明了来源或原始作者。如果你是相应作者,不希望文章放在这里,请通知我,我会及时删掉。

------------------------------------------------------
文章或者技巧及原始作者或出处:

正则表达式类
【1】 正则表达式应用——替换指定内容到行尾
【2】 正则表达式应用——数字替换----------------------------Microshaoft,jiuk2k
【3】 正则表达式应用——删除每一行行尾的指定字符
【4】 正则表达式应用——替换带有半角括号的多行
【5】 正则表达式应用——删除空行----------------------------江德华
软件技巧类
------------------------------------------------------
【6】 软件技巧——键盘记录的注意事项
【7】 软件技巧——关闭文档标签的便捷方法
【8】 软件技巧——如何去掉 EditPlus 保存文本文件时的添加后缀提示?
【9】 软件技巧——提示找不到语法文件的解决办法
【10】软件技巧——设置editplus支持其它文字,如韩文----------jackywu1978
【11】软件技巧——FTP 上传的设置----------------------------李应文2.11汉化版
【12】软件技巧——如何禁用备份文件功能?
【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件
工具集成类
------------------------------------------------------
【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis、C#)
【15】工具集成——让Editplus调试PHP程序----------------------avenger,aukw
【16】工具集成——打造 PHP 调试环境(二)----------------------老七2.11汉化版
【17】在 WINPE 中集成 EDITPLUS

每个步骤都说得很详细了,就没有必要贴图了,体积不要太大才好。

【1】正则表达式应用——替换指定内容到行尾
原始文本如下面两行
abc aaaaa
123 abc 444

希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg

解决:
① 在替换对话框,查找内容里输入“abc.*”
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多

注意:其实就是正则表达式替换,这里只是把一些曾经提出的问题加以整理,单纯从正则表达式本身来说,就可以引申出成千上万种特例。

【2】正则表达式应用——数字替换
希望把
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):
如果将查找内容“[0-9][0-9][0-9]”改为“[0-9]*[0-9]”,对应1 或 123 或 12345 或 ...
大家根据需要定制

相关内容还有很多,可以自己参考正则表达式的语法仔细研究一下

【3】正则表达式应用——删除每一行行尾的指定字符
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现
比如
12345 1265345
2345
需要删除每行末尾的“345”
这个也算正则表达式的用法,其实仔细看正则表达式应该比较简单,不过既然有这个问题提出,说明对正则表达式还得有个认识过程,解决方法如下
解决:
在替换对话框中,启用“正则表达式”复选框
在查找内容里面输入“345$”
这里“$”表示从行尾匹配

如果从行首匹配,可以用“^”来实现,不过 EditPlus 有另一个功能可以很简单的删除行首的字符串
a. 选择要操作的行
b. 编辑-格式-删除行注释
c. 在弹出对话框里面输入要清除的行首字符,确定

【4】正则表达式应用——替换带有半角括号的多行
几百个网页中都有下面一段代码:
<SCRIPT LANGUAGE="javascript1.1">
<!--
htmlAdWH('93163607', '728', '90');
//-->
</SCRIPT>
我想把它们都去掉,可是找了很多search & replace的软件,都是只能对“一行”进行操作。

EditPlus 打开几百个网页文件还是比较顺畅的,所以完全可以胜任这个工作。
具体解决方法,在 Editplus 中使用正则表达式,由于“(”、“)”被用做预设表达式(或者可以称作子表达式)的标志,所以查找
“<SCRIPT LANGUAGE="javascript1.1">/n<!--/nhtmlAdWH('93163607', '728', '90'.);/n//-->/n</SCRIPT>/n”
时会提示查找不到,所以也就无法进行替换了,这时可以把“(”、“)”使用任意字符标记替代,即半角句号:“.”。替换内容为
<SCRIPT LANGUAGE="javascript1.1">/n<!--/nhtmlAdWH.'93163607', '728', '90'.;/n//-->/n</SCRIPT>/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 ,则系统自动识别。

【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)
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: 各种语法和模板文件可以在 www.editplus.com 获得,可根据需要选用和编辑。
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

复制editplus安装包里面的文件到programs/editplus/,注意,如果有setting.ini,删掉该文件在nu2menu里面加入,可以根据需要安排位于特定菜单条目下
<MITEM TYPE="ITEM" DISABLED="@Not(@FileExists(@GetProgramDrive()/Programs/EditPlus/editplus.exe))" CMD="RUN"
FUNC="@GetProgramDrive()/Programs/EditPlus/editplus.exe">EditPlus 文本编辑</MITEM>