如何在Amazon EC2上架设UBUNTU VPN

前几天在面包的虚拟机上一直测试VPN,经常出现错误619拨号错误,查询了很多资料,发现与IPTABLES防火墙设置有关系,本想研究IPTABLES防火墙设置,但是用PPTUY无法连接到面包的虚拟机,所以作罢,只能另寻他处,经过面包的建议,选择了EC2重新架设VPN,下面是如何架设VPN的步骤:

– 安装 PPTPD

sudo apt-get install pptpd

-修改PPTPD的配置

vi /etc/pptpd.conf

在里面我是选择了recommended

Localip

192.168.0.1

Remoteip

192.168.0.234-238

修改完成,保存

然后继续修改/etc/ppp/pptpd-options,改变其中的 ms-dns 选项,为 VPN 客户端指派 DNS 服务器地址:

ms-dns 8.8.8.8

ms-dns 8.8.4.4

当然你可以选择Amazon的DNS 172.16.0.23(我是比较喜欢用google的DNS)

修改完成,保存

接着修改/etc/ppp/chap-secrets,这里存放在VPN的用户名和密码,里面的第一列是用户名,第二列是服务器名(默认pptpd),第三列是密码,第四列是IP限制(如果没有任何的IP限制,就填*即可)

– 修改/etc/pptpd.conf

找到logwtmp语句,并且注释

– 重新启动pptpd

sudo /etc/init.d/pptpd restart

– 开启ipv4 forward

修改/etc/sysctl.conf,然后找到如下语句并取消注释

net.ipv4.ip_forward=1

使新配置生效:

sudo sysctl -p

– 安装IPTABLES

sudo apt-get intall iptables

– 修改Iptables,设置网络地址翻译

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

上述设置在重起后悔丢失,因此需要修改 /etc/rc.local文件, 在exit 0之前添加以下语句:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

因为PPTPD采用TCP 1723端口,所以在EC2的左边Navigation选择NETWORK & SECURITY -> Security Groups, 然后选择和INSTANCE匹配的Security Group, 在Inbound里面建立一个新RULE, 选择Custom TCP rule, Port range里面填写1721-1723, Source里面填写0.0.0.0,然后点击Add Rule, 最后是Apply rule changes

这样操作后,客户端机器应该就可以上网了。

但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:

sudo iptables-save > /etc/iptables-rules

然后修改 /etc/network/interfaces 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:

pre-up iptables-restore < /etc/iptables-rules

以 WORDPRESS 为后台快速部署多种在线应用

WORDPRESS 现在真的是异常强大了, 目前全球有 7200万网站使用的是 WORDPRESS 作为后台 CMS 系统。 它现在的意义已经远超过最初的个人 BLOG 平台, 通过各种插件, 你可以把 WP 扩展作为一个平台扩展成为各种各样的在线应用。

现在来看看以 WP 为后台加上各种各样的扩展 plugins 都可以做些什么吧 ( 详细参考后面链接, 来自 hotscripts.com):

bbPress – WordPress as a Forum

bbPress 可以把 WP 扩展成为一个在线论坛

WP-Invoice – Web Invoicing and Billing with WordPress

WP-Invoice 可以把WP 变为一个在线计价和收据系统

Casual – A WordPress Tumblog Theme

Casual 可以把你的 WP 变成一个微博系统

Prospress – Make a marketplace with WordPress

Prospress 可以把你的 WP 系统变成一个在线C2C交易平台

s2Member – Turn WordPress into a membership site

s2Member 可以把你的 WP 转变为一个会员站, 比如, 你的网站出售一些在线内容, 而你只希望付费会员看到这些内容, 这时候这个插件就可以起作用了。

WP-CRM – Customer Relations Management for WordPress

WP-CRM 属于 WordPress 的客户关系管理系统

ALO EasyMail Newsletter – Send Newsletter using WordPress

ALO EasyMail Newsletter 把你的 WP 系统变成一个新闻邮件分发系统 —— 要注意不要乱发垃圾邮件哦, 不然你的WP发信来路被ISP 或者被GMAIL 封了可别怪我。。。

CollabPress – Collaborate on your next project with WordPress

CollabPress 在线项目协作系统能够把你的 WP 变成一个团队项目合作平台

BuddyPress – Social Networking with WordPress

BuddyPress 你想要像类似 Tweeter 那样的社会化网络吗? 那么 BuddyPress 也许就是一个不错的选择, 在几下点击之后把你的 WP 变成一个社交网络吧。

WP-Property – WordPress Powered Real Estate Management

WP-Property 这个比较强大了, 能把你的WP 变成个房地产交易及出租网站。

Lifestream – Stream your life with WordPress

Lifestream 可以把你在其它社会化媒体上的活动都统筹起来放在基于 WP 的网站上统一展示。

Connections – Directory Plugin for WordPress

Connections 这是一个 WP 的目录插件, 无论你是想建立一个黄页还是白页类型的网站, 或者想建立一个商业名录或者链接目录, 这个插件都可以让你简单的完成目录的建立。

Quick Chat – Turn WordPress into a self-hosted chat platform

Quick Chat 把你的 WP 变成一个在线聊天平台。

WordPress Download Management – File Repository with WordPress

顾名思义, 这是一个 WP 下载控制及管理的插件, 强化的上传下载以及文件嵌入和密码控制模块能够让你方便的掌控所有供下载的资源。

Jihosshop – Start selling with WordPress

Jihosshop 可以把你的WP 转变成一个 电子商务平台。

WordPressWiki – Your own KB application built on WordPress

WordPressWiki 用这个 WordPressWiki 插件, 把你的WP转变为一个知识库吧。

Booking Calendar – Availability Booking for WordPress

Booking Calendar 可以把你的 WP 变成一个 在线预订平台, 不管你是经营酒店还是餐馆, 或者其它任何需要预订服务的地方, 这个插件都可以给你的用户提供在线预订服务。

P2 – Microblogging with WordPress

P2 这是另外一个 WordPress 微博插件, 把 WP 转变成一个微博吧。

Event Organiser – Create and maintain events using WordPress

Event Organiser 事件管理 WordPress 插件, 有点类似 Google Calendar 的功能。

WeReview – WordPress Review Engine

WeReview 可以把你的 WP 变成一个在线评论和分享网站, 比如你做一个电影评论网站啊, 用了这个插件大家就都可以来针对某电影进行评分也可以在后面叽歪自己的看法了。

Yet Another Photoblog – Photoblogging with WordPress

Yet Another Photoblog 这个插件能够把你的 WordPress 变成一个图片博客系统, 想要自己拥有一个像Flickr 那样的站点吗? 试下 Yet Another Photoblog 吧。

英文原文: Getting 110% out of WordPress

Today, WordPress powers over 72 million different websites around the globe. At the end of 2011, it was estimated that around 20%-25% of all new websites published were built using the WordPress platform. Throughout the 98 version releases that WordPress has gone through since 2003, it has morphed from a simple blogging tool to a rather capable CMS. This makes WordPress the most widely used and popular CMS in existence with a 53.8% market share.

This high affinity for WordPress as a CMS is attributed to its ease of use, flexibility, and extensible core. Given that WordPress excels at handling content, it can be easily tailored to accommodate non-blog-focused sites with custom content types – and usually that’s just a plugin or theme away.

If you use WordPress or are planning to use it, it’s time to do the happy dance. This month our featured article – Getting 110% out of WordPress – takes a look at some WordPress plugins and themes that can transform your WordPress site from a simple blog to a totally different web application experience. You will learn how to use WordPress as a framework to power classified ads, social networks, questions/answers, and ecommerce sites.

You can also visit our dedicated WordPress section on HotScripts to uncover other great plugins.

Secure insight – the feature of shopping PayPal 发布的2012电子商务在线购物调研报告和趋势研究

蛮不错的一个调研报告, 由 PayPal 编辑发布的。 

Earlier this year, PayPal released the latest Secure Insight report, The
Future of Shopping. You may find the following highlights useful as you
continue to grow your business this year and beyond:

The Australian online commerce market is growing rapidly and is expected to hit $34.8 billion in 2013
Many Australia retailers are only just beginning their online journey
Australian shoppers still prefer to shop domestically, with 70% of online spending at local stores
PayPal is seeing huge growth in mobile payments, which grew 500% in 2011!

 

Read the full report

 

SEO 调研工具和方法汇总

SEO关键词调查是看似非常初级的工作,但是如果你要真正体会到某个SEO关键词的商业价值,必须先从使用各种SEO关键词调查工具入手。这里推荐一些常用的关键词调查分析方法。文中都附带了链接, 可以直接点击到SEO 调研工具网站查看。

1.首先,自然是学会使用SEO关键词调查工具。

例如,谷歌 Google 的 Adwords Keyword Tool、MSN的 AdCenterWordtracker

这里有一个 Adwrods Keyword Tool 的视频教程。

综合分析了以上几个工具,把某一段时间的数据变化做了综合比较,就会发现一些有意思的现象。同样的关键词在不同搜索引擎上带来的商业价值差异会比较大,这也就凸现了我们充分利用各种搜索引擎、将我们的商业流量最大化的根源所在。

2.其次,恐怕要属关键词趋势分析了。

这里,笔者当然要首推谷歌的趋势分析工具 Google Trends. 同样,我们也会在这里发现问题,把2个相关联的关键词拿来做比较分析,其媒体关注度和自然搜索的热门程度尽然差距那么大。比如,SEO工 具和SEO服务,非常明显,SEO工具更加符合一般用户的搜索习惯。更有甚者,在不同社会化网络系统当中,同一关键词的流行度也会有较大差异。

3.不得不提到排名分析。

这里对SEO调研最重要的就是谷歌 Google 的网站排名分析,这里的排名分析是针对某个关键词的分析, 如果说起来会非常庞杂, 这里就不展开了。

4.PPC关键词广告分析工具

这里,笔者要推荐的是MSN的 AdCenter 和谷歌的 Adwords,其最大的共性,是公正客观的出价评估系统。

5.相关搜索分析

这一点,在主流搜索引擎的界面上,例如谷歌、雅虎、MSN以及Bing都有体现,比较适合刚开始进行关键词分析的人群。

SEO 调研利器——用 Google 高级搜索功能进行 SEO 关键词调研

Google高级搜索提供了输入项、网页语言、网页区域、文件格式、日期、关键词位置、网域、权限等自定义搜索结果。google-advanced-search

本文重点分析的是日期和关键词位置,郝聪认为这两项功能可以用于SEO的深入研究与分析,而且,通过Google产品里覆盖的这些选择项其实已经变相的验证了某些已经公开的SEO技术方法。

1、日期

Google高级搜索中日期的自定义项包含:任意时间、过去一天内、过去一周内、过去一个月内、过去2个月、过去3个月、过去6个月、过去一年内。日期对应的搜索结果URL中的参数是:as_qdr,以上7个选项对应的参数值分别是: all、d、w、m、m2、m3、m6、y。当然,你也可以手动在普通搜索结果URL中添加as_qdr参数以显示相应时间内的搜索结果网页,比如:让as_qdr=m5或d3或y8,就会返回5个月内、3天内、8年内的搜索结果。

SEO应用方法

我们可以限定日期为一天内,那查询关键词后返回的结果数可以理解为在一天之内Google更新过的有关查询关键词的网页数量。比如:搜索关键词”SEO”,返回搜索结果数量为225000,这表示在Google一天之内更新的网页数量是225000,这其中包括新收录的网页和更新的旧网页(PS:一天之内未必表示24小时,这要根据Google理解的每次网页更新时间间隔来理解);除此之外,你还可以使用site命令或者网域项来检索某个时间段内某个域名下哪些新网页被收录以及哪些旧网页被更新。这将有利于评估网页收录速度并为此制定针对性的网站优化策略。

以老K实验室为例:

输入 site:www.kcswebdesign.com

为什么不同日期内网页排序不同

搜索引擎是否应该向搜索者提供最新的信息,而不应该完全是旧网页? 排序不同是不同时期产生的网页发挥的价值不同造成的,搜索者自定义日期的目的正是如此;可以肯定的说,再所有时间内,网页排序过程中时间是一个权重的影响因素。

 

2、关键词位置

Google高级搜索中字词位置的自定义选项包括:网页内的任何地方、网页的标题、网页的内文、网页内的网址、在网页的连接内,这些选项已在告诉SEO搜索引擎在与网页“交互”的过程中评定网页的影响因素,因为搜索者也需要这样的影响因素来搜寻他们认为对自己有帮助的有价值的网页。  在网上大部分SEO教程中都应该提及过网页标题优化、网页正文内容优化、网址优化和文本连接优化,通用的说法是:优化的关键词应该布置再网页标题靠前的位置、网页正文要分段并保持关键词再段落中有一定的出现比例、将关键词转化为英文单词或字母全拼作为网页URL的一部分、将关键词作为网页文本链接的锚文字,正像上面所言,这些说法都是正确的。

我们根据Google不断推出的基于用户考虑的功能也正在逐步验证了正规SEO的确是符合搜索引擎本意的。  搜索引擎、网站、SEO三者之间应该是一种生态关系,SEO是在遵循技术原理的基础上来适应生态环境。

SEO 旧版搜索引擎优化(SEO)调研报告 – Google和Bing SEO 排名决定因素

最近在SEOmoz(搜索引擎优化(SEO)业内最著名的网站之一)上看到了他们的最新调研结果,内容是关于Google和Bing上的排名影响因素的深度分析。

他们对AdWords中不同类目的、11,351条关键词搜索结果做了极其详尽的分析(至少是我所见过的最详细的),从而得出了一些对Google和Bing上的排名影响因素的结论。

虽然不是Google,Bing官方给出的说法,但毕竟SEOmoz是业内的翘楚和意见领袖,我认为还是很有参考价值的。

原文内容很长很详细,这里不再逐字逐句的翻译。下面基于原文的内容,加上自己的一些拙见,列出一些数据解读和要点,和各位朋友分享。

(注:数据图表出自SEOmoz,版权归原作者所有)

域名中的关键词

bing-v-google-domain-name

数据解读:

  • 精确匹配的域名对于Google和Bing都很重要(对Google而言更重要一些)
  • 连字符连接的域名相对而言重要程度稍低(虽然很多人都在用)
  • 在域名中包含关键词对于该关键词的排名很有利(这一点其实大家都已达成共识)

按域名后缀划分的精确匹配域名

bing-v-google-exact-match-t

数据解读:

  • 如果要做精确匹配域名的话,.com后缀是最佳选择
  • 对于非.com后缀的精确匹配域名,在Bing上的排名效果会略好于Google(虽然并不是非常明显)

子域名中的关键词

bing-v-google-subdomain-key

数据解读:

  • 把关键词放到子域名中的效果不如放到根域名中好(这个也已经是常识)
  • 子域名中的关键词,对于Google的排名结果影响要大于Bing

页面上的关键词

bing-v-google-on-page

数据解读:

  • 图片Alt标签中的关键词仍然很重要,无论是对于Google还是Bing
  • URL中的关键词很重要(但是这个有可能是因为如果URL中含有关键词,拷贝粘贴该URL时也会包含该关键词,从而导致流入链接的锚文本中含有关键词,从而带来的侧面效果,因此仅供参考)
  • 注意,本图中间有一个“0”坐标,意味着某些因素会有负面影响
  • 单从图上来看,title和H1标签中的关键词甚至会带来负面影响!但是,原文给出的结论是“Everyone seems to be optimizing their title tags these days (appeared in Google: 11,115 vs. Bing: 11,143). Differentiating here is hard.”综合看来,虽然未必真的会有负面影响这么严重,至少它不再像以前所认为的那么重要了。这让我想起了“meta keywords”,曾经的SEO“风水宝地”,在搜索引擎改变算法后,失去了意义。
  • 总体来看,单纯地优化页面上的相关因素,效果并不理想

链接的数量和多样性

bing-v-google-links

数据解读:

  • 链接看起来仍然是搜索引擎算法中最重要的因素之一
  • Bing对于链接相关数据的使用没有Google成熟,但比起去年来已有很大进步
  • 来自不同来源的链接,仍然比单纯增加连接数量要重要(这一点也是常识)
  • 链接如此重要,因此对链接的建设、分析和优化仍然是SEO中最重要的内容之一

域名后缀

bing-v-google-tld-extension

数据解读:

  • 使用.gov, .info, .edu等域名,并不会得到对于排名的特殊对待和额外奖励或惩罚
  • .org令人吃惊 – 因为单纯从数据上看来,.org是对排名好处最大的!(虽然具体原因不明)
  • 别忘了上面关于精确匹配域名的分析 – .com域名仍然很重要,尤其是在使用精确匹配域名时

域名、URL和内容的长度

bing-v-google-content-lengt

数据解读:

  • 短URL效果很好(尤其是在Bing上体现明显)
  • 很长的域名并不理想,但也不至于很糟糕
  • 单纯的内容长度似乎并不是那么重要(这一点也算是常识,因为页面长度本身并不重要,关键词密度才重要)

网站首页

bing-v-google-homepages

数据解读:

  • 相对于Google而言,Bing更喜欢惯例化地给网站首页更高的排名

链接锚文本匹配

bing-v-google-anchor-text

数据解读:

  • 从同一个域名过来的、锚文本中包含关键词的链接,并不是越多越好
  • 从不同域名过来的、锚文本中包含关键词的链接,数量越多越好,而且这是对该关键词的排名影响最大的因素之一
  • 在处理含精确匹配的锚文本链接的做法和效果上,Bing比以前更像Google了

影响最大的五个因素

bing-v-google-highest-match

数据解读:

  • 五个因素(图中从上到下):流入链接数量,精确匹配的域名,连接到根域名的链接数量,精确匹配的连接到域名的链接,精确匹配的.com域名
  • 总体来讲,链接因素对于排名的影响,要远远高于页面(on-page)或域名相关的因素
  • 精确匹配仍然是非常强大的影响因素
  • Google和Bing非常相似 – 因此针对两个搜索引擎分别制作两套不同的网站/页面将会浪费时间和精力
  • 随着时间推移,Bing看起来越来越接近Google了。相对去年而言,相似度明显增加(当然,也有可能是Google越来越接近Bing了,尽管这也许不符合我们的个人经验)

后记

众所周知,搜索引擎在不断改变算法,以致力于为搜索引擎用户提供相关度尽可能高的结果,同时也不断地和“黑帽”(不道德的)搜索引擎优化手段作斗争。因此,排名影响因素的权重发生变化其实也是正常的。

所以,我们可以做的,就是要随时注意知识更新,尤其是和搜索引擎算法相关的信息,这样才有可能跟得上搜索引擎这个飞速发展的行业前进的步伐。

附录

SEOmoz文章地址:http://www.seomoz.org/blog/google-vs-bing-correlation-analysis-of-ranking-elements

原文出处:SEOmoz;译者:Leon Zhang, 数字营销宝典 

搜索引擎SEO调研常用命令搜集

SEO 中SE的一些常用命令总结在这里了, 用好搜索引擎一些特殊指令,是干SEO这行的一个基本功。初步整理了10个功能,单独使用是最基本的能力,如果综合使用,你会发现搜索的奥妙无穷, 这些搜索引擎命令也是做 SEO 这一行的利器。

site:

某个特定网站收录情况。

比如site:www.zhaozhihui.com.cn

cache:

上一次搜索引擎收录某个特定网站的情况.输入某个页面,可以发现蜘蛛最近收录的日期和版本。

比如cache:zhaozhihui.com.cn

info:

某个特定网站的收录信息,最近的cache,相似网页,站点链接,内部链接,包含域名的网页。

info:www.google.com

link:

某个特定网站的外部链接,这是一个主要获取排名和权重的主要因素。

link:zhaozhihui.com.cn

yahoo提供前1000的外部连接网站。

related:

与某网页特别相关的网页。

related:www.yahoo.com

allinurl: or inurl:

检索网页URL标题包含的特定内容。

allintext:

显示在文档中包含这些文字的所有网页。在seo中,用于发现相关站点和潜在的链接。

研究对手比较好用。

allinanchor: or inanchor:

在链接中包含指定anchor的所有网页。

allintitle: or intitle:

网页标题中包含指定文字的所有网页。

define:

这个高级功能很少seo会用到,不过还是很有价值的。相当于一部辞典。

domain:

查一个域名的反向链接是多少。比如说在搜索引擎百度里用这个命令

domain: www.kcswebdesign.com

linkdomain:

由于雅虎退出了,很多站长不知道该怎么查询雅虎的外链,这里可以给大家推荐一种方法就是 linkdomain

星号 *
它是常用的通配符,不过也可以用在搜索中,百度不支持这个符号。
比如你在谷歌中搜索:搜索*擎  出现的结果不仅仅“是搜索引擎”这个词。

nurl:

这个命令是指搜索词出现在URL中的页面,百度和谷歌都支持这个命令。比如,你搜索inurl:静脉曲张袜  url包含搜索词的页面,这样的话可以更加精确的找到你的竞争对手,而且关键词出现在URL中对排名也有影响的。

 

以下是百度的搜索引擎SEO 常用命令

一、site命令

site命令是搜索某个域名在百度下的所有页面,对于seo来说这个命令很不准确,稍微相关的都会出现,所以这个是个泛查询命令。

二、domain命令

domain命令是查询某个域名在百度下的反向链接个数,对于seo来说,百度下的domain命令并不是所有反向链接有输出值的命令,也会出现没有输出的命令,但是对于百度来说,输出的是所有网页含某个域名的命令。

三、双引号””

双引号命令是准确查找含某个关键词的命令,所以如果您想准确查询网页关键词排名可以用双赢号命令,这个才是关键词是实际排名,如果您有耐心可以一页一页查看下去。

四、减号-

减号是去命令,用空格割开配合其他命令使用 是不包含减号后面的相关内容的命令。

五、inurl命令

查询出现在url中出现的词的命令,如果您在百度搜索栏中输入”inurl:高邮掼蛋网” 那么就会出现url中包含高邮掼蛋网的所有网页。

六、intitle命令

intitle命令是在百度搜索返回结果中页面标题出现关键词的所有网页。

七、allintitle命令

allintitle是在百度搜索返回结果中页面标题出现多个关键词的命令比如:”allintitle:seo 启程 sem”就是在页面标题出现 seo 启程 sem的所有返回结果。

八、allinurl命令

allinurl是在百度搜索返回结果中URL中出现多组词或者符号,词语之间空格分开。

九、filetype

filetype是在百度搜索中搜索特定格式的网页页面比如DOC XLS PPT RTF 等等文件格式。如果您使用filetype:all 那么就是搜索所有格式。

6家上市电子商务平台第一季度财政收入数据

6家上市电商一季报数据:

  1. eBay:营收32.77亿美元,同比增29%;净利5.7亿,增20%;
  2. 亚马逊:营收131.8亿,增34%;净利1.3亿,降35%;
  3. Groupon:营收5.6亿,增89%;亏损收窄92%;
  4. 当当:营收1.721亿增58%,亏1580万;
  5. 麦考林:营收3710万,降22.8%;
  6. 唯品会:营收1亿增250%,亏860万

看来在全球范围内电子商务总体发展还是保持着一个良好的势头啊。

蛮经典的 PHP class 类入门教程 (转)

刚在大略浏览了一下首页更新的那篇有关Class的文章(指PHPE的那篇 http://www.phpe.net/articles/389.shtml ),很不错,建议看看。
对类的摸索~~俺用了半年时间才大概理解类的作用和实现。主要是没有一篇能让我理解的文章(之前没接触过任何OO的东西)。
以我的观点来说说PHP中的Class,用于表达的语言都是非正式的语言,也不能确定是否正确。

建立一个类很简单。

<?php
class my_class {}
?>

类到底干什么呢?很多人都是什么黑匣子,我在这里称它为一个独立的整体。我们只知道类名,而不知道里面有什么东西。那么,该如何使用这个类呢?
首先:要知道它里面是否定义了公共的变量--专业术语上称它为“属性”。
其次:要知道它里面定义了什么函数--专业术语中称它为“方法”。
我都被这些专业术语搞糊涂了,所以干脆不理它了。

类中的如何定义公共变量,它有什么作用呢?

很简单,我们来扩充 my_class 类

<?php
class my_class
{
var $username;
}
?>

看上面很简单,我们定义了一个公共的变量,只是用 var+空格+普通变量名 构成。它有什么用呢?考虑一下函数中,如果我们要访问函数外的变量,是不是要先 global 一下呢?这个想实现的效果也是如此,它是想让这个类中的所有函数都能访问它,而它区别于函数的一个地方,是类的外部也可以访问这个变量,我随后再讲外部如何访问它。还有一个区别,不能用复杂的语句给这个变量赋值(具体的等理解了类以后自己去看规则)。给它一个默认值

<?php
class my_class
{
var $username = “深空”;
}
?>

OK,定义了一个公共的变量了,接下来定义一个函数(也就是所谓的“方法”)。

<?php
class my_class
{
var $username = “深空”;

function show_username()
{
}
}
?>

这个定义函数跟普通的定义函数形式上没什么区别了。简单就好,定义一个打印 $username 的函数:

<?php
class my_class
{
var $username = “深空”;

function show_username($username)
{
echo $username;
}
}
?>

到这里可能某些人开始迷糊了,呵呵,最关键的就是这里了,看清楚了。现在有三个 $username 了。到底哪个是哪个啊~~
函数所带的行参,不用解释了吧?这个函数功能就是打印行参所接收的值,也就是如果:

<?php
show_username(“猪头深空”);
?>

那么它将打印 “猪头深空” ,就这么简单。
怎么样访问这个函数?肯定不是我上面说的那样直接 show_username(“猪头深空”); 了,别急,类有类的一套。如下:

<?php
$Name = new my_class();
?>

这样就初始化上面的那个 my_class 的类了,并把这个对象赋给变量 $Name ,你可以这样理解,这个变量就代表整个类了,呵呵。
使用类中的函数:

<?php
$Name->show_username(“猪头深空”);
?>

晕了,为什么这么复杂?还要箭头?其实很形象的。本来已经把类给了变量 $Name 了是吧?也就是 $Name 代表了这个类,然后用一个箭头指向类中的 show_username 这个函数。就是这么简单,也就是说,这个函数是这个类中的,而不是其他的函数--你就理解为表示一个区别吧,呵呵。

试试看哦,打印出 “猪头深空” 这四个字了。你说为什么要这么复杂?用函数不是也能实现么?我说,这么简单的你当然看不出好处了,我们继续扩充。
还有一个疑问:刚才说的“公共的变量”怎么一点用处都没有呢?为什么这个函数不会自动接收这个公共变量 var $username 中的默认值?也就是如果我使用:

<?php
$Name->show_username($username);
?>

会有什么结果呢?答案是没有任何输出。因为你没有给形参 $username 一个值。
那么该怎么使用这个公共的变量?我们来修改一下这个类:

<?php
class my_class
{
var $username = “深空”;

function show_username()
{
echo $this->username;
}
}
?>

哇靠,不是吧,这回脸形参都没有了?还多了一个$this->,晕了不是,呵呵。其实这也是类的一个最大的方便之处。
$this 的作用:访问一个公共的变量,或者类里面的函数。
访问?这么专业?其实就是用 $this->username 来代替 var $username 而已拉,$this 用来说明它是公共的。可以访问的,函数外部的东西。
试试看:

<?php
$Name->show_username();
?>

看到了吧,终于打印 “深空” 这两个字了,娃哈哈。
我不打印“深空”这两个字,我要打印“猪头深空”,怎么办?很简单,我们给这个公共变量重新赋值拉。服了你了。

<?php
$Name->username = “猪头深空”;
?>

这个能明白意思么?$Name->username 表示的是类里面的这个公共变量。等号赋值不用我解释了。

我们再来打印看看

<?php
$Name->show_username();
?>

哈哈,终于打印“猪头深空”了。不错吧,很方便吧,不用形参也能任意修改打印值哦~~。

不过单单打印一个名称也太没意思了,我们说点欢迎的话吧,来扩充一下这个类,创建一个名叫 Welcome 的函数:

<?php
class my_class
{
var $username = “深空”;

function show_username()
{
echo $this->username;
}

function Welcome()
{
}
}
?>

恩,实现什么功能好呢?简单点吧,就实现在名字前面有 “欢迎” 两个字好了

<?php
class my_class
{
var $username = “深空”;

function show_username()
{
echo $this->username;
}

function Welcome()
{
echo “欢迎”;
$this->show_username();
}
}
?>

第二次看到 $this 了吧?$this->show_username(); 干什么用呢?其实它就是调用 show_username 这个函数,用 $this 来表示这个函数在类中并且和 Welcome 函数平行,而不是在其他地方(比如Welcome函数中)。

Welcome 函数实现的功能很简单,首先打印两个字”欢迎”,然后接下去执行 show_username 函数,打印名字。

来试试这个函数吧:

<?php
$Name->Welcome();
?>

看到了吧,打印出“欢迎深空”这四个字了。

可是我要打印“欢迎猪头深空”,怎么办?我服了你了,我们给公共变量 var $username 一个值吧:

<?php
$Name->username = “猪头深空”;
?>

接下去打印欢迎语:

<?php
$Name->Welcome();
?>

嘿嘿,终于打印“欢迎猪头深空”了。

怎么样?明白了类的用法了么?好处在于能够调用类中的任意函数,只要用 $this 指出来,可以改变一个公共变量的值,可以在类中的函数中使用这个公共变量。………多了去了,它的应用等待你去发现了。

作者:ChingKwan

php curl cookie 存取示例

好多人发来消息询问curl存取cookie文件的问题,不觉得这是个难点,因为只看手册就可以很容易把握。下面给个例子,看完后就全都明了了:

<?php
$cookie_jar_index = 'cookie.txt';

$url = "http://www.71j.cn/perl/login.pl";
$params = "username=dudu&password=****";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar_index);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
//curl_setopt($ch, CURLOPT_NOBODY, 1);//这个不能打开,否则无法生成cookie文件
ob_start();
curl_exec($ch);
curl_close($ch);
ob_clean();

$url = "http://www.71j.cn/perl/myfavorites.pl";
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url);
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar_index);
ob_start();
curl_exec($ch2);
curl_close($ch2);
$rs = ob_get_contents(); //$rs就是返回的内容
ob_clean();

print_r($rs);

?>