Top Words:  老当益壮,宁知白首之心;穷且益坚,不坠青云之志。(王勃)

子雨轩网络

PHP互联网技术,互联网文摘,PHP技术,WEB开发,SEO,WAP技术,linux系统

Home » index.php » archives » date » 2008 » November

在 PHP 中养成 7 个面向对象的好习惯

在 PHP 编程早期,PHP 代码在本质上是限于面向过程的。过程代码 的特征在于使用过程构建应用程序块。过程通过允许过程之间的调用提供某种程度的重用。
但是,没有面向对象的语言构造,程序员仍然可以把 OO 特性引入到 PHP 代码中。这样做有点困难并且会使代码难于阅读,因为它是混合范例(含有伪 OO 设计的过程语言)。使用 PHP 代码中的 OO 构造 — 例如能够定义和使用类、能够构建使用继承的类之间的关系以及能够定义接口 — 可以更轻松地构建符合优秀 OO 实践的代码。
虽然没有过多模块化的纯过程设计运行得很好,但是 OO 设计的优点表现在维护上。由于典型应用程序的大部分生命周期都花费在维护上,因此代码维护是应用程序生命周期的重要部分。并且在开发过程中代码维护很容易 被遗忘。如果在应用程序开发和部署方面存在竞争,那么长期可维护性可能被放在比较次要的地位。
模块化 — 优秀 OO 设计的主要特性之一 — 可以帮助完成这样的维护。模块化将帮助封装更改,这样可以随着时间的推移更轻松地扩展和修改应用程序。
总的来说,虽然构建 OO 软件的习惯不止 7 个,但是遵循这里的 7 个习惯可以使代码符合基本 OO 设计标准。它们将为您提供更牢固的基础,在此基础之上建立更多 OO 习惯并构建可轻松维护与扩展的软件。这些习惯针对模块化的几个主要特性。有关独立于语言的 OO 设计优点的更多信息,请参阅 参考资料。
7 个优秀 PHP OO 习惯包括:

保持谦虚。
做个好邻居。
避免看到美杜莎。
利用最弱的链接。
您是橡皮;我是胶水。
限制传播。
考虑使用模式。

保持谦虚
保持谦虚指避免在类实现和函数实现中暴露自己。隐藏您的信息是一项基本习惯。如果不能养成隐藏实现细节的习惯,那么将很难养成任何其他习惯。信息隐藏也称为封装。
直接公开公共字段是一个坏习惯的原因有很多,最重要的原因是让您在实现更改中没有应有的选择。使用 OO 概念隔离更改,而封装在确保所作更改在本质上不是病毒性(viral)更改方面扮演不可或缺的角色。病毒性 更改是开始时很小的更改 — 如将保存三个元素的数组更改为一个只包含两个元素的数组。突然,您发现需要更改越来越多的代码以适应本应十分微不足道的更改。
开始隐藏信息的一种简单方法是保持字段私有并且用公共访问方法公开这些字段,就像家中的窗户一样。并没有让整面墙都朝外部开放,而只打开一两扇窗户(我将在 “好习惯:使用公共访问方法” 中介绍访问方法的更多信息)。
除了允许您的实现隐藏在更改之后外,使用公共访问方法而非直接公开字段将允许您在基本实现的基础上进行构建,方法为覆盖访问方法的实现以执行略微不同于父方法的行为。它还允许您构建一个抽象实现,从而使实际实现委托给覆盖基本实现的类。
坏习惯:公开公共字段
在清单 1 [...]

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

php中iconv函数遭遇中文破折号“—”时的问题

iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库
我们公司的项目需要把utf8转为gb2312的编码,最近发现了公司顶目在生成一静态页时出现了数据丢失,今天上午在我一步步跟踪调试下发现问题出在ICONV这个函数上,于是在网上搜了下,原来大家也有遇到这种情况。
解决方法很简单,就是在需要转成的编码后加 “//IGNORE” 也就是iconv函数第二个参数后.如下:
以下为引用的内容:
iconv(”UTF-8″,”GB2312//IGNORE”,$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

元素 float:right 后右对齐换行原因及解决方法

元素 float:right 后右对齐换行原因

<p style=”width: 400px; height: 20px; text-align: left;”>新闻新闻新闻<span style=”float: right”>2007-08-18</span><span style=”clear: both;”></span></p>

<p style=”width: 400px; height: 20px; text-align: left;”><span style=”float: right”>2007-08-18</span>新闻新闻新闻</p>

效果:

原因:

当非float的元素和float的元素在一起的时候,如果非float元素在先,那么float的元素将被排斥
也就是说,你的span是float:right,但是你文本还是float:none

如果要让两者占据同一行:

要么你把span先于文本显示 :<span style=”float: right”>2007-08-18</span> (示例第3行)
要么把文本也设成float:<span style=”float: left”>新闻新闻新闻</span>

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

配置ssh root用户远程访问

配置ssh root用户远程访问
启用 sshd
sshd 的启用是作为 FreeBSD 安装中 Standard 安装过程中的一步来进行的。 要查看 sshd 是否已被启用, 请检查 rc.conf 文件中的:
sshd_enable=”YES”

也可以手工启动sshd,当然不光有start一个选项,可以键入/etc/rc.d/sshd 查看一下
/etc/rc.d/sshd start
发现root用户访问的时候提示
authentication error for root from
找到/etc/ssh/sshd_config
vi一下
或用 ee打开 配置文件 指令这样写 ee /etc/ssh/sshd_config

再找到#PermitRootLogin no
将#号去掉,并且把no 改成 yes 重启启动服务就可以了

然后即可连接了。

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

FreeBSD忘记密码解决

忘记密码解决
昨天装freebsd,初次装不小心密码搞忘了,最后找了个比较好的办法。
进单用户模式
键入指令:boot -s
# fsck -p
# mount -a
# passwd root(或者其他用户)
# exit
OK,完事。

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

php导出为excel表的类

<?php
/**
* Simple excel generating from PHP5
*
* This is one of my utility-classes.
*
* The MIT License
*
* Copyright (c) 2007 Oliver Schwarz
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the “Software”), to deal in the Software without
* restriction, including without limitation the rights to [...]

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

百度承认管理不善 就虚假医药信息公开道歉

DoNews11月17日消息 11月17日,百度对“央视曝光竞价排名黑幕”一事公开表态,承认竞价排名服务中存在虚假医药信息,承认百度公司对销售运营体系管理不善。
百度表示将配合国家有关部门对虚假医药信息进行整治,加强对销售运营的管理,今后还将与整个社会和全行业合作,加大对垃圾信息、网络欺诈等行为的打击。(完)
附:百度公司官方表态
中央电视台新闻30分栏目就百度竞价排名结果中存在的问题曝光后,我们立即对相关的信息进行了下线处理。有部分网站利用竞价排名服务推广其网站上的虚假医药信息,百度已对此进行专项审查,并将配合国家有关部门,对各类网络虚假医药信息进行清理整治。
由于网络上销售药品的虚假信息泛滥,网络欺诈横行,百度提示广大的用户,警惕任何利用网络销售药品的虚假信息。
有部分网站利用竞价排名服务推广其网站上的虚假医药信息,是百度对销售运营体系的管理不善造成的,对广大百度用户,对其它竞价排名客户的感情造成了伤害,百度对此表示真诚的歉意。
在百度八年的成长过程中,为了与Google这样全球领先的技术公司进行竞争,百度过多的关注了技术和研发,而对销售运营缺乏严格的管理和系统的投入, 百度对此进行了深刻的反省。作为足以影响人类历史进程的伟大发明,搜索引擎正在发挥更大的作用,其深远的影响甚至不是今天我们所能全部预见的。我们意识 到,百度公司肩膀上承载着巨大的社会责任,而如果我们仅仅一心扑在技术和研发上,不重视我们商业模式的优化,不重视我们对销售队伍的培训,我们就不能对社 会、对广大网民,对广大信任我们的客户负起责任。
搜索引擎上排名的高低,可以产生巨大的商业价值,所以搜索引擎从诞生第一天起,就与 垃圾信息、网络欺诈进行着最艰苦的技术斗争。我们深知,如果不能赢得这场技术战争,人们将不能利用搜索引擎便捷的获取信息。今天,通过广大媒体,广大网民 对百度的监督,我们也更深刻的意识到,对垃圾信息、网络欺诈的斗争,不仅仅是一场技术战争,而首先是对百度整体运营能力的自我挑战,百度将毫不犹豫地履行 自己的社会责任。同时,解决垃圾信息、网络欺诈问题并不是百度一家公司能解决的,我们也呼吁互联网产业的同行和全社会共同携手,为打击垃圾信息、网络欺诈 而努力。

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

Linux下的文件权限:chmod的命令参数

指令名称 : chmod
使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file…
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]…][,...],其中
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 [...]

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

Ubuntu快捷键

快捷键
ctrl shift f(窗口全屏)
ctrl shift n(新建konsole窗口)
ctrl shift (调整窗口字体大)
ctrl shift -(调整窗口字体小)
ctrl shift 0(调整窗口字体正常)
ctrl alt f1(终端1)
ctrl alt f2(终端2)
ctrl alt f3(终端3)
ctrl alt f4(终端4)
ctrl alt f5(终端5)
ctrl alt f6(终端6)
ctrl alt f7(X-window界面)
ctrl alt s(重命名会话在konsole窗口)
ctrl alt d(显示桌面)
ctrl alt l(锁定屏幕)
ctrl alt 方向上下(切换输入法)
ctrl alt del(结束会话)
ctrl alt Ins(结束或锁定当前会话开始新的会话有的可尝试+FN键)
Ctrl+Alt+BackSpace(强行退出X-WINDOW)
ctrl alt FN p(调整窗口大小)
ctrl F1(显示窗口)
ctrl f2(显示桌面)
ctrl prtscr(截屏)
ctrl Home(显示到窗口页首)
ctrl End(显示到窗口页尾)
ctrl space(切换输入法)
ctrl shift(切换输入法)
ctrl l(=clear)
ctrl n(新建窗口)
ctrl S(保存文件)
ctrl q(退出)
ctrl d(关闭konsole)
ctrl ESC(KDE卫士)
shift 方向键(在konsole下切换)
alt [...]

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark

SNS催生新应用时代

       每一个开发者想像一下,如果你现在有机会去做一个你力所能及的事情,并且有机会成为像求伯君、王江民那样的“软件个人英雄”,你会不会去行动?
今天,互联网上出现的开放平台(API)协作开发机制,正在创造这样一个崭新的环境,让每一个开发者能够发挥创意,在社交网络平台(SNS)上开发自己的应用来服务这上面的网民,征服数以万计。甚至百万、千万的用户。
        最早掀起这一潮流的始作俑者是风靡全球的互联网新贵Facebook,很多业内人士将这家公司比作是“下一个Google”。说实话,尽管之前宣称过自己是 “下一个Google”的公司有很多,但Facebook显然是最名副其实的一家。因为Facebook与Google一样,不但成就了自己,还在成就一个全新的产业生态,一个新的互联网分工和协作机制,向第三方开发者Widget公司们提供API,共享自己的用户,让自己的用户使用这些Widget,增加多元化的应用体验,同时,也让Widget赢得了商业价值或赚了钱。
        广为人知的是,Facebook现在成就了硅谷最大的两家Widget开发公司Slide和RockYou,这两家被誉为是Widget领域内的“可口可乐和百事可乐”,其中,拥有数千万网民用户的Slide公司的估值已达到5亿美金,而RockYou也获得了不菲的风险投资。
        重要的是,Facebook的机制从未给这两家公司安排任何特殊权益或“私有接口”,在Widget领域内也并不是只有“可口可乐和百事可乐”,象 iLike、Nicknames、Texas HoldEm Poker、Friends For Sale! 这些,可以称得上是“农夫山泉”、“汇源果汁”、“王老吉”们的比比皆是。截至2008年9月,Facebook上的第三方开发者所提供的Widget已超过了41000家,而且每日还在不断增加,新的创意也层出不穷。这些新加盟的开发者有公司、有工作室,甚至有单兵匹马的个人。
        这是软件工程师们一次展示实力、创造价值的时代机遇,上一次出现类似机遇的时期是Windows操作系统平台出现的早期,大量为Windows开发应用软件的开发者们,无论是企业还是个人,最终坚持下来的,都从中赢得了巨大的成功,文章开始处提及的求伯君和王江民,正是当年这一机遇的获益者。
        当初,Windows操作系统依靠它在PC桌面上的占有率,能直接覆盖数以亿万计的计算机用户,那么,为Windows所开发的应用软件们则自然可以站在巨人的肩膀上发展了。现在的 Facebook提供的便利似乎更多,它不但向Widget们提供了接口,Facebook这种社交网络本身还为开发者们宣传自己的Widget提供了优秀的传播平台,通过好友的口口相传,获得更低廉的推广成本,赢得更好的营销效果。
        只要有足够的人来用,赚取收入就是水到渠成的事情了,广告是最常见的收入之一,在Facebook上的广告联盟(Google Adsense等)很多,不少应用都通过这些联盟赚到了实实在在的美金,此外,一些象Texas HoldEm Poker(德克萨斯扑克)的应用则是通过增值服务,向用户出售虚拟积分赚取美元。
国内SNS在行动
        Facebook 开辟的互联网这一崭新开发合作模式,正在被越来越多的互联网公司所认可以及效仿,这其中既包括SNS类网站,也包括传统的互联网巨头。在国外,MySpace、Bebo、Google、Yahoo!都在加入开放平台的阵营。由于平台集中度的原因,国外开放平台的主体依然是Facebook。
        国内的景象也很积极,一方面,有校内网、51.com、康盛创想(Comsenz)这样以社区为背景展开开放平台的;另一方面,也有以新浪、腾讯、搜狐、淘宝等为代表的传统互联网公司,这些公司也在积极进入SNS领域,要么在大步快上开放平台,要么在积极筹备SNS网站之中,甚至,中移动这样的移动运营商也准备介入进来。
        在中国,暂时还没有象Facebook这种能跨越多种人群、能涵盖各行各业的大而全的综合性SNS开放平台,大多数SNS网站平台都是一个专注的垂直的 SNS网站,所以,Facebook在美国SNS领域一股独大的态势未在中国重演。如,校内网是学生领域的垂直SNS网站、51.com是85、90后的垂直SNS网站、开心网则期望成为白领领域的垂直SNS网站,而安装Comsenz公司推出的SNS建站工具UCenter home的垂直SNS网站正在急速增长。截至2008年9月,通过Comsenz的UCenter Home1.2版、1.5版搭建的SNS网站总数已接近4万家。典型站点如:人力资源社区17hr.com、IT圈网站5gme.com和 home.techweb.com.cn、旅游类社区u.8264.com、大学生类网站www.daxuesheng.com、数码类网站 blog.pdafans.com、汽车类网站my.chinacars.com、机械行业类网站u.cmiw.cn、地方类网站 home.jysq.net等。
        根据CNNIC报告的数据显示,与2007年12月相比,30岁及以下的三个年龄段的网民增长量均超过900万人,其中不到18岁的用户增量达到948 万,而18—24岁的用户增量已高达981万。SNS非常吸引年轻用户群,很多网站意识到,抓住中国互联网的年轻化、娱乐化特征,是吸引增量网民的关键。因此,对于很多网站经营者而言,SNS正逐渐成为每个网站的标配,抓住先机先下手为强是很多网站的思路,尤其对社区类的网站而言,这些网站大多依赖会员成长而成长,均有启动SNS业务的需求,并且,SNS是网站增加用户黏性的重要方法,增强SNS黏性还可以在侧面降低网站对搜索引擎的依赖。
        所以,这种一致性地对于SNS业务的需求,直接催生了国内应用(Widget)的产生和发展。截至2008年9月17日,校内已拥有700个第三方应用;Comsenz公司的Manyou开放平台测试发布一周内,已发展了70多个应用,而申请审核通过的潜在应用则有数百个。
        然而,这仅仅还是一个开始,国内真正好的应用以及好的应用开发者团队还太少。像目前在开发者圈内小有名气的奇矩互动、热酷网、“五分钟”等拥有着 10-20多个人的专业应用开发商,还非常非常少。这一方面是因为开放平台的理念刚刚推出,大多数有实力的开发者还未有充分地了解和理解,没有意识到这一机会所潜藏的价值;另一方面,还有一些开发者对于平台定位的疑虑,以及对于盈利的方向尚不清晰,还不敢大规模投入精力,一边做着以前的主业,一边尝试性地兼职在做。
开发者如何走出第一步
        我们感觉到,在互联网的SNS开放平台上要开发好一个应用,真正体会和了解用户远比抓住一个技术要领显得重要得多,与在Windows操作系统上开发桌面软件的区别是,在SNS上的应用更接近用户,用户的趣味变化得更快。所以,与其是说开发应用,不如说是运营用户,如果一个开发者能以运营的思路和心态来开发 SNS上的应用,那么,他(她)就成功一半了。我们不能在这里举出一个个实际的案例来详细讲解什么是“运营”的真正含义,因为这是需要每个开发者自己用心去思考去体会才可以获得的独有经验。但是,我能够说的一个好开发者以及一个好应用的标准是,至少他(他们)能够自己成为SNS平台的一个铁杆用户,把自己转化为SNS上的一个普通网民,去体会用户喜欢玩什么,为什么愿意玩,而好应用就是能让自己以及自己的“好友们”愿意花时间、有强烈的、持续的欲望在玩的那些应用。
        显然,我们看到在校内上、Manyou上,达到上述标准的应用数量还为数甚少,大多数应用创意不足,策划的成分很低,用户的体验不好,技术的痕迹太重,做是做出来了,但看上去仅仅是实现了功能。这导致大多数应用的生命周期太短,尽管有些应用是可以让人眼前一亮,但是用户在玩了两三天、个把星期之后,持续去玩的兴趣就少了,象“争车位”、“朋友买卖”这样生命周期能持续到两、三个月的应用数量还是太少太少。此外,还有一些开发者未意识到,即使是一个有热度的应用,如果不持续地加入新的创意、新的应用元素,也会影响它的生命周期。
        事实上,从现在开始,到SNS开放平台上来“投资”(无论是金钱还是精力),专注地开发一两个精品应用,完全有机会迅速脱颖而出并且能在不久之后获利。很多开发者可能至今都在竭力期望依赖广告这一模式获取收入,但从我们的经验来看,仅仅依赖互联网广告成为SNS以及应用的收入模式还远远不够。更值得去关注的,依然是怎样吸引你的应用向用户收费,这也是今天中国互联网上真正的最大的一块收入。拿腾讯来说,它每天1000万的收入来源中,真正属于广告的收入不足1/5,大多数收入却来自网民主动提交的娱乐收入(虚拟增值、轻游戏),培养用户在腾讯QQ的大社区中换换“衣服”、养养“宠物”或者“打打牌”。
        正如游戏行业正在积极地倡导“游戏社区化”一样,SNS所面临的机遇之一则是“社区化游戏”或“社会化游戏”,当然,这些游戏都是以休闲游戏和轻量级的游戏应用为主,像校内平台上的“新同居时代”或Manyou平台上的“CS反恐精英”就是这样的起步级代表。
        值得开发者欣喜的是,包括校内、51.com、Manyou等大多数开放平台,均透露了有意向推出虚拟货币的计划,这可以为大多数开发者获取用户主动付费带来了可能,现在积极行动和部署是最佳的选择。不久前,校内网刚刚推出开放平台之初,曾经在开发者条款方面引发了较大的争议,导致一些开发者对平台定位存在顾虑,担心开放平台会不会在将来抢夺热门应用的生意。对此,大C(康盛创想总裁戴志康)一直贯彻的宗旨是,至少Manyou一直会定位做平台,而不是具体的一个个应用。我们期待,有实力的开发者尽快准备起来,在国内开放平台的百花齐放时期,用智慧和实力来创造可预期的未来。

  • Hotmail
  • LinkedIn
  • Yahoo Mail
  • Yahoo Messenger
  • Google Bookmarks
  • Share/Bookmark
.... ... ...