SEO知识小结

最近看了本SEO方面的书,整理记录一下相关的知识。

搜索引擎收录的算法:
1.广度优先搜索算法(Breadth-First-Search),又译作宽度优先搜索,或横向优先搜索,简称BFS,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。广度优先搜索的实现一般采用open-closed表。

具体形式见图:
广度优先搜索算法

2.深度优先搜索算法(Depth-First-Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。

具体形式见图:
深度优先搜索算法

镜像页面:
搜索引擎会判断两个页面的内容相似度,如果满足他的算法,则认为这两个页面互为镜像页面,然后会根据权重、时间等综合因素来判断谁是源镜像。
所以就会有类似的情况:
比如一个pr=0的小站和一个pr=8的大站,消息出自小站,但是大站转载走了,很大程度上这条消息的排名大站会排在前面,虽然你是原创第一手的信息。

网站URL命名规则:
1.如果使用英文单词,则每个单词间使用-分隔。
2.如果使用拼音,则不需进行分隔。

南锣鼓巷+鼓楼|钟楼+烟袋斜街+后海一日游

上周去过颐和园之后,就开始计划下一次出行的目的地。
网上搜索发现后海周边还不错,于是下一次出行的目的地就这样敲定了。

周五晚上先问了下朋友,关于后海游玩的路线。朋友给的计划是南锣鼓巷+鼓楼+后海,先在南锣鼓巷吃吃小吃,中午到鼓楼吃饭,下午逛后海,全程下来大概4公里左右。
路线大概计划好了之后,开始约妹纸,没想到妹纸已被约,这周末都没时间,排到下周日了,亚历山大哇...
好吧,妹纸没时间,还有好基友,立马成行。

先上一下自己定的最终路线图。
[caption id="attachment_828" align="alignnone" width="300" caption="南锣鼓巷+鼓楼+烟袋斜街+后海一日游路线图"]南锣鼓巷+鼓楼+烟袋斜街+后海一日游路线图[/caption]

下面上图。

第一部分:南锣鼓巷

南锣鼓巷入口的房檐。中间的插曲,我和一同事到了,然后另外一个同事还没到。打电话发现居然停机了,我擦,坑爹啊。也不知道他是没来呢,还是在半路呢。于是跟另外一个没来的同事打电话让他给这个同事充话费,呃,等了10分钟都没充上,擦,俩人都不靠谱。关键时刻还得靠自己,手机上支付宝,直接充值,搞定。打电话说是在地铁,10分钟后到。尼玛,你定的11点半到的,自己都还没到。等人无聊,于是就各种瞎拍。这是南锣鼓巷的第一张照片。
南锣鼓巷入口的房檐

南锣鼓巷入口一览。
南锣鼓巷入口

老北京家家都种树,于是南锣鼓巷处处有阴凉,全靠这些枝繁叶茂的树了~
还是入口的那些树

入口南边还在施工的工地,南锣鼓巷就在隐藏在前面这片工地后面~
入口南边还在施工的工地

入口的小店,店主看到有人拍照,不一会就挂出了禁止拍照的牌子~
入口的小店

GRD4高度黑白对比下的入口。
黑白对比下的入口

阳光透射下,树枝显得十分清晰。
阳光下的树~

老字号店铺——咂摸。
咂摸

迎面走来的妹纸,拿起GRD4直接按下快门,妹纸立马呈现在相机上。
抓拍的妹纸~

逛累了,找个小店,在阳台上喝点东西,休息一下~
阳台~

这家店阳台上养了一排的花,分外妖娆~
阳台上那一排的红~

咂摸老店前面咨询的人们~
咨询的人们

屋檐和葡萄架。
屋檐和葡萄架

拍照的人们,拍照的辛苦了,我也给你来一张~
在拍照的人们

刚巧看到路中的妹纸,咔嚓~
路中的妹纸~

阳光照在店铺的墙上。
阳光下的店铺

闲逛的情侣,这张虽然手抖了,但是妹纸还是不错的。
闲逛的情侣

住在胡同里会是怎么样的呢?
胡同~

路灯。
路灯

屋檐。
屋檐

三棵树,因为门前的三棵树得名。
三棵树

抓拍下的妹纸。
路中的妹纸

屋檐。
屋檐

跟着这俩妹纸好久,好像是在自拍,不知道会不在看到俺呢...
自拍中的妹纸~

逛累了,来点吃的,休息一下
逛累了,来点吃的,休息一下

时间、角度、位置都刚刚好,前面的妹纸就这样被记录下来。
路中的妹纸

又来一个妹纸,貌似焦点没抓上
又来一个妹纸

还是妹纸,快门按晚了,妹纸偏头了
还是妹纸

墙外的树。
墙外的树

玩手机的妹纸。
玩手机的妹纸

哈哈,你知道牌匾上的字吗?
哈哈,你知道牌匾上的字吗?

屋檐。
屋檐。

抓拍下意想不到的妹纸~
意想不到的妹纸~

翻转下的镜头。
翻转。

路中的妹纸。
路中的妹纸。

南锣鼓巷出口,对面走来的妹纸。
南锣鼓巷出口,对面走来的妹纸。

迎面走来的行人。
迎面走来的行人。

第二部分:鼓楼

镜头里的鼓楼。
镜头里的鼓楼。

躲在城墙和树后面的鼓楼。
躲在城墙和树后面的鼓楼。

钟楼。
钟楼。

钟楼近景。
钟楼。

鼓楼外的天空。
鼓楼外的天空

钟楼外的天空。
钟楼外的天空。

远处的鼓楼。
远处的鼓楼

第三部分:烟袋斜街

牌楼。
烟袋斜街

某个店铺外的天空。
某个店铺~

屋檐和天空,自动档下测光导致曝光不足,这次拍的片子好多都是曝光有问题。
屋檐和天空

店内的小玩意~
店内的小玩意~

大清邮政~
大清邮政

各种人~
各种人~

街道里的天空。
天空

屋檐。
屋檐

店铺。
店铺

个人感觉相当不错的妹纸~
妹纸~

小萝莉。
小萝莉

这是什么呢?
这是什么呢?

烟袋斜街出口。
烟袋斜街出口~

第四部分:后海

银锭桥上。
银锭桥上

银锭桥上

游船。
游船

桥边的树。
桥边的树~

路边的树~

随风摆~
随风摆~

迎面走来的妹纸。
迎面走来的妹纸

游人。
游人~

拍妹纸~
拍妹纸~

妹纸正面照。
妹纸

院子。
院子~

后海。
后海

桥墩里看后海。
桥墩里看后海

拍妹纸。
妹纸

栏杆。
栏杆

路边的树。
R0012425

宋庆龄故居外的天空。
宋庆龄故居外的天空

宋庆龄故居外的天空

有人在弹吉他。
有人在弹吉他~

寻找九门小吃。
寻找九门小吃~

后海。
后海

后海

后海

妹纸哦~~
妹纸~

后海。
后海

后海

另外的角度~
另外的角度~

后海有运动员训练,抓拍到一个训练的妹纸~
运动员妹纸~

后海。
后海

南锣鼓巷里妹纸很多,鼓楼吃饭的人很多,后海没有想象的大,不时也会有妹纸出现。

PHP的单例模式

单例模式,顾名思义强调的是单一,只有一个实例,而且自行实例化并向整个系统提供这个实例。

条件3点:
1、需要一个静态变量,保存类的唯一实例。
2、需要一个公共静态方法,返回唯一实例的一个引用。
3、构造函数(__construct)、克隆函数(__clone)私有化,从而防止外部程序 new 类,从而失去单例模式的意义。

这里说明一下第3点。
如果不声明私有的构造函数,那么可以通过new实例化类调用相应的方法。

class test{

    static private $_instance = null;

    static public function getInstance() {
        if (is_null(self::$_instance) || !isset(self::$_instance)) {
            self::$_instance = new self();
        }
        
        return self::$_instance;
    }
    
    public function testA() {
    
        echo 'test is done!';
    }
}

$a = new test;
$a->testA();

如果不声明私有的克隆函数,那么可以通过克隆一个类的示例来调用原类的方法。

class test{

    static private $_instance = null;

    static public function getInstance() {
        if (is_null(self::$_instance) || !isset(self::$_instance)) {
            self::$_instance = new self();
        }
        
        return self::$_instance;
    }
    
    public function testA() {
    
        echo 'test is done!';
    }
}

$a = test::getInstance();
$b = clone $a;
$b->testA();

优点:
1、节省系统资源,避免重复实例化,是一种“计划”生育。
2、避免大量的new 操作。例如,数据库应用。一个系统程序,会存在大量的数据库操作,如果使用单例模式,就可以避免大量new 操作。
3、如果系统中需要一个类来全局控制某些配置信息,那么使用单例模式可以很方便的实现。这个可以参看zend framework 的frontController部分。
4、便于调试,管理,因为所有代码 都集中在一个类里。我们可以在类中设置钩子,输出日志,从而避免 到处 var_dump,echo

缺点:
众所周知,php语言是一种解释型脚本语言,这种运行机制使得每个php页面被解释执行后,所有的相关资源都会被收回。也就是说,php在语言级别上没办法使某个对象常驻内存。
这与asp.net、java等编译型是不同的。然而php,所有的变量无论是全局变量还是静态变量,静态成员都是页面级的。
每次页面执行时,都会重新建立新的对象,都会在页面执行完毕后被清空。
这样似乎php单例模式没什么意义了,所以php的单例模式是针对单次页面级同时出现多个应用场景并需要共享同一对象资源时,是非常有意义的。

本文参考资料:http://blog.csdn.net/calllmq/article/details/7347736