Archive for 11月, 2008
百度是如何判定SEO作弊的
自己网站被K了N长时间,最后也不知道为什么,现在找到资料跟大家共享
?
源代码中故意加入与网页内容不相关的关键词。
源代码中故意大量重复某些关键词。即使与网页内容相关的关键词,故意重复也被视为作弊行为。
网页中加入搜索引擎可识别但用户看不见的隐藏文字。(这些包括使用同背景色文字、 超小字号文字、文字隐藏层、滥用图片ALT 等)。
故意制造大量链接指向某一网址的行为。
对同一个网址,让搜索引擎与用户访问到不同内容的网页(包括利用重定向等行为)。
网站内即使只有一个网页作弊,该网站也被认为是有作弊行为。
有链接指向作弊网站的网站,负连带责任,也会被认为是作弊,但作弊网站上 链接指向的网站,不算作弊。
什么是搜索引擎的沙盒效应(Sandbox)
?
搜索引擎对新上线的网站的信任期其实就是我们在SEO中经常听到的沙盒效应,在这几个月内在搜索引擎上很难有好的排名,甚至没有排名。
所以一个新的网站,即使已经做了很好的SEO优化:丰富的相关内容,大量的高质量外部链接,网站URL搜索引擎友好,网站结构用户体验友好等。但在刚上线的几个月内,找不到好的排名是相当正常的现象。
Google的Sandbox-沙盒效应一般会持续6个月,这6个月内新站应该不断完善各方面SEO,沙盒效应过后,一般会有不错的排名。
百度对新站的“建立信任期”,一般是2个月。这两个月内,过多得修改网站结构,修改文章标题,会造成百度对站点信任度的降低。
如何正确规范模板解释生成方式
常用的模板解释生成方式主要用自定义标签的方式来实现,标签从原来的大家认识最简单的替换词进行替换,再到解释一系统的函数标签,即列表标签。
生成静态文件中常用的列表标签类似于
{#Function Type=”Article” name=”” Lable=”” Para1=”” Para2=”” #}
解释时用正则表达式得到要求解释文章列表,然后实例化一个文章解释类,进行解释。
调用文章解释类进行解释时,需要将字符串中对应的参数付到类对像中,这里采用的是一种正则表达式的方式。
根据对像的属性进行反射,然后进行查找,如果找到则替换对应的值这样每一模板至少需要解释四十来个这样的标签,再加进行数据库的读取,字符串运算等相关解释。即生成一篇文章需要50秒种,而且因为正则表达式的过多使用,在生成时一般会造成Cpu占用率很高。
通过测试发现
{#Function Type=”Article” name=”” Lable=”” Para1=”” Para2=”” #}
变成
<Function Type=”Article” name=”” Lable=”” Para1=”” Para2=”” />
这种Xml结点形式。只需要进行两次字符串替换操作。
这样就可以通过XmlDocument 中Attribute来获得相关标签参数的值。
递归获取Xml节点中的属性到一个Hastable中的速度是很快的
如何使用ftp_set_option()解决php下ftp连接ftp_connect超时
ftp_set_option() 函数设置各种 FTP 运行时选项。它的使用格式是ftp_set_option(ftp_connection,option,value)
FTP_TIMEOUT_SEC 选项改变网络传输的超时时间。参数 value 必须为整数且大于 0。默认的超时时间为 90 秒。
当 FTP_AUTOSEEK 选项打开时,带 resumepos 或 startpos 参数的 GET 或 PUT 请求将先检索到文件中指定的位置。此选项默认是打开的。
例如:
<?php
$conn = ftp_connect(”ftp.testftp.com”) or die(”Could not connect”);
ftp_login($conn,”admin”,”ert456″);
ftp_set_option($conn,FTP_TIMEOUT_SEC,120);
ftp_close($conn);
?>
几个常用网站管理软件
流量监控
DU Meter-DU Meter是一个简单易用的网络流量监视工具,图形化的界面显示非常直观,可以实时监测服务器的上传和下载的网速,同时还有流量统计功能。可以分析出日流量、周流量、月流量等累计统计数据。不过遗憾的是这个软件不是免费的,友道网.?
代码编辑?
Notepad++- Notepad++是一个免费开源的源程序代码、HTML网页代码编辑工具,支持多达数十种常见源代码或脚本的语法,包括C,C++,Java,C#,XML,HTML,PHP,Javascript,RC resource file,makefile,ASCII,doxygen,ini file,batch file,ASP ,VB/VBS,SQL,Objective-C,CSS,Pascal,Perl,Python,Lua等,功能非常强大。在服务器上安装后可以直接修改网站上的源程序代码。?
日志搜索
WinHex- WinHex是一款速度很快的文件编辑器。打开数百兆的大型文件速度飞快,使用WinHex可以轻松打开服务器上的大型日志文件,并对其进行关键字搜索,效果非常好,是我见到的速度最快的文本编辑搜索软件,总体来说是一款非常不错的16进制编辑器。
端口监控?
TcpView- TcpViews是一款免费的端口和线程监控工具,可以列出当前所有TCP和UDP端口的进程清单,包括本地和远程地址的TCP连接,其实和系统命令netstat类似,不过是GUI界面的,使用方便,占用资源少,默认字体在中文环境下很小,需要手动修改。在服务器上运行的话,默认刷新时间不要用默认的1秒。
Arp防火墙?
Arp Firewall - 现在托管服务器必须安装的第一个软件就是Arp防火墙,没办法啊,中国这网络环境,不安装Arp防火墙就等着被人挂木马了。现在免费的Arp防火墙主要有两款,一个是奇虎的360 Arp防火墙,一个是金山Arp防火墙。
从数据库分表分析PHPCMS2008的内容管理
PHPCMS2008数据结构相对于07版有了很大的变动,而这些变动也自然而然的体现在了它的内容的处理流程方面。接下来,我们简单的看下内容模块
首先,我们先回顾下07版的内容模块是如何工作的,我们找到PHPCMS_ROOT(也就是根目录)的module下,我们会发现,像文章和图片这些基础内容模块是以文件夹的形式存在的,他们是相互独立的。文件夹中必须包括的有以下几个基础的文件admin.inc.php,myitem.inc.php,type.inc.php,show.inc.php,search.inc.php,list.inc.php,index,inc.php等,以及admin,copy,include,install,special,uninstall几个文件夹。单从名字就可以看的出,所有的处理流程,这里都囊括了,其中还包括模块的安装卸载。这种处理已经很是优化了。现在我们来看看08版,module这个很核心的文件夹不见了,那为什么我们在后台还是可以很方便的操作内容模块呢,它到底去了哪里。我们只能去数据库查看其中的端倪了。
07版的每个频道是只能绑定一种内容模块的,比如,我建一个频道是新闻的,那我就把这个频道设为article,于是数据库中,就有了类似这样的两个表article_1(注意:这个1是该频道的ID号)和article_data_1,当我们要在这个频道加入图片(picture)的内容时,在理论和实际操作都是不允许的,我们只能重新建一个专门放图片类的频道,这也是为什么08版要大动手术的根本原因。08版的数据结构是可以由用户自己定义的,比如我们建立一个新闻的内容模块(官方叫内容模型,他们说的可能更确切些),我们可以自己定义一个表,表的格式会按照phpcms_c_xxx(注:phpcms_是前缀,c应该是必须的,而xxx是你自己定义的)。其实这个表从本质上只是用来储存内容的,我们要添加的内容其实要从phpcms_content,phpcms_content_count,phpcms_content_postition绕一下,内容的ID也是以phpcms_content这个表为标准的。也就是说,这个CMS系统的所有文章的索引都在phpcms_content中。那我们千辛万苦定义的内容模型的结构在哪里呢?让我们看看phpcms_model这个表,你会发现几乎所有的内容模型都列在这里了,而具体的设置,比如那个选项是什么都存在phpcms_model_field中。而那些附加的非内容性的模块都被很聪明的放在另外一个表phpcms_module中了。
这只是本人一点个人看法,希望大家指正,谢谢
如何解决PHP的Fatal error: Cannot redeclare错误
这应该属于PHP的致命错误,我们应该多了解下include和include_once的区别
通常是文件包含问题引起的,比如应该使用include_once来包含文件,而不要只使用include包含,就可以避免了。
如何实现大数据量MySQL导入导出
导出成文本
方法: SELECT * INTO OUTFILE ‘/backup/user.txt’ FROM user;
导出成 .sql 文件(用 mysqludmp 导出数据是相对较快的方法.)
方法: mysqldump -t -n –default-character-set=latin1 test?user?> /backup/user.sql
导入 txt 文件
方法: mysql test < /backup/user.txt
导入 sql 文件
方法: mysql test < /backup/user.sql
用load data是较快的方法
大数据量情况下, 最好是创建好表之后, 同时也要创建好相关的索引. 虽然说没有索引时导入更快, 但是数据导入完成之后再创建索引总共的耗时比事先创建好了再导入要来的多多了.
另外,如果是myisam表,则最好是导入之前先禁用表的索引,导完之后再启用;或者是一开始不创建索引,导完之后再创建,都会比导入的同时更新索引来的快很多.
如何实现apache的rewrite伪静态
首先确定您使用的 Apache版本,及是否加载了mod_rewrite模块。
Apache1.x的用户请检查conf/httpd.conf中是否存在如下两段代码:
LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.c
Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段代码:
LoadModule rewrite_module modules/mod_rewrite.so
如果存在,那么在配置文件(通常就是 conf/httpd.conf)中加入如下代码。此时请务必注意,如果网站使用通过虚拟主机来定义,请务必加到虚拟主机配置,即 <VirtualHost> 中去,如果加在虚拟主机配置外部将可能无法使用。改好后然后将 Apache 重启。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2
RewriteRule ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3
RewriteRule ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2
</IfModule>
如果没有安装 mod_rewrite,您可以重新编译 Apache,并在原有configure的内容中加入–enable-rewrite=shared,然后再在 Apache 配置文件中加入上述代码即可。
linux-RedHat9.0的启动过程-建立终端并登录
rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。init接下来会打开6个终端,以便用户登录系统。通过按Alt+Fn(n对应1-6)可以在这6个终端中切换。在inittab中的以下6行就是定义了6个终端:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
从上面可以看出在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序,mingetty程序能打开终端、设置模式。同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login
程序来验证用户的身份。
对于运行级别为5的图形方式用户来说,他们的登录是通过一个图形化的登录界面。登录成功后可以直接进入KDE、Gnome等窗口管理器。而本文主要讲的还是文本方式登录的情况:
当我们看到mingetty的登录界面时,我们就可以输入用户名和密码来登录系统了。
Linux的账号验证程序是login,login会接收mingetty传来的用户名作为用户名参数。然后login会对用户名进行分析:如果用户名不是root,且存在/etc/nologin文件,login将输出nologin文件的内容,然后退出。这通常用来系统维护时防止非root用户登录。只有/etc/securetty中登记了的终端才允许root用户登录,如果不存在这个文件,则root可以在任何终端上登录。/etc/usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制。
在分析完用户名后,login将搜索/etc/passwd以及/etc/shadow来验证密码以及设置账户的其它信息,比如:主目录是什么、使用何种shell。如果没有指定主目录,将默认为根目录;如果没有指定shell,将默认为/bin/bash。
login程序成功后,会向对应的终端在输出最近一次登录的信息(在/var/log/lastlog中有记录),并检查用户是否有新邮件(在/usr/spool/mail/的对应用户名目录下)。然后开始设置各种环境变量:对于bash来说,系统首先寻找/etc/profile脚本文件,并执行它;然后如果用户的主目录中存在.bash_profile文件,就执行它,在这些文件中又可能调用了其它配置文件,所有的配置文件执行后后,各种环境变量也设好了,这时会出现大家熟悉的命令行提示符

