seo谷歌高级搜索命令

2012-01-24 留下评论

每天查询反链,搜索footprint、profile资源的命令大家肯定用的得心应手,

但是大家肯定不知道有多少谷歌搜索命令,下面转来一起学习

很多不常用的,但是说不定哪天用到了 标记一下

一、allintitle:
当我们用allintitle提交查询的时候,Google会限制搜索结果仅是那些在网页标题里边包含了我们所有查询关键词的网页。例 [allintitle: detect plagiarism],提交这个查询,Google仅会返回在网页标题里边包含了”detect”和”plagiarism”这两个关键词的网页。

二、bphonebook:
用bphonebook进行查询的时候,返回结果将是那些商务电话资料。

三、allinanchor:
anchor是一处说明性的文字,它标注说明了这个链接可能跳转到其它的网页或跳转到当前网页的不同地方。当我们用allinanchor提交查询的时 候,Google会限制搜索结果必须是那些在anchor文字里包含了我们所有查询关键词的网页。例[ allinanchor: best museums
Sydney ] ,提交这个查询,Google仅仅会返回在网页anchor说明文字里边包含了关键词”best” “museums” 和”Sydney”的网面。

四、allinurl:
当我们用allinurl提交查询的时候,Google会限制搜索结果仅是那些在URL(网址)里边包含了我们所有查询关键词的网页。例 [allinurl: google faq],提交这个查询,Google仅会返回在URL里边包含了关键词”google”和”faq”的网页,象www.google.com/help /faq.html等的网页。

五、cache:
提交cache:url ,Google会显示当前网页的快照信息,从而替换网页的当前信息。例[cache:www.friendgolf.com],提交这个查询,Google会返回所有抓取的关于www.friendgolf.com的网页快照信息。在显示的网页快照信息里边,Google会高亮显示查询关键词。(在cache:和URL之间不能有空格)

六、allintext:
当我们用allintext提交查询的时候,Google会限制搜索结果仅仅是在网页正文里边包含了我们所有查询关键词的网页。例[allintext: travel packing list],提交这个查询,Google仅仅会返回在一个网页包含了三个关键词”travel” “packing”和”list”的网页。

分类:Other

压缩你的PHP、JS、CSS等文本类型代码

2012-01-23 留下评论

众所周知,减小代码在传输中的大小,就能提高页面的传输速度,打开网页也就快 了,这是基于带宽瓶颈的理论,当然服务器速度受到其他很多因素的影响, 有PHP代码执行速度,数据库访问速度,磁盘读写IO速度等,无论怎样,带宽影响是非常大,而受中国电信抑或是中国网通还有其他的一些电信公司的制约,在 服务器网络带宽并不很充裕的条件下,压缩代码传输将会大大节省带宽!

本文讲述通过使用Gzip压缩方式自动压缩相应的代码,在访问者浏览器端会自动还原成代码以便浏览器执行,至于编写代码时的良好风格节省空间的方法不在本文之列。

GZIP 最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在 LINUX中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常 使用GZIP压缩技术来让用户感受更快的速度。

首先测试一下你的网站各个页面是否采用了Gzip压缩,这里有个测试工具

目前,有两种主流方法实现Gzip压缩。
一、mod_deflate模块

mod_deflate 模块提供了DEFLATE输出过滤器,允许服务器在将输出内容发送到客户端以前进行压缩(应该也是采用gzip数据格式压缩,deflate是一种压缩算 法)以节约带宽。Apache 1.3.x时代使用mod_gzip模块来实现,Apache2已经内置了mod_deflate模块。

这种方法要求安装了Apache的http服务器软件,并且加载了deflate模块。

使用方法:

在网页发布目录的.htaccess文件中加入:

  1. <ifmodule mod_deflate.c>
  2. AddOutputFilter DEFLATE html htm xml php js css
  3. </ifmodule>

这样就会使得Apache在发布html,xml,php,js,css这样的文件时会采用Gzip方式传输数据,这个方法简单,一劳永逸,但一般使用的虚拟主机并没有安装deflate模块,也不一定是Apache的,不过我们还有办法:

二、ob_gzhandler函数
主机要求:支持PHP,PHP版本在4.0.4以上,安装有zlib库

对于PHP文件传输中压缩,只需在原来的 PHP 文件首行加上

  1. <?php if(extension_loaded(‘zlib‘)){ob_start(‘ob_gzhandler‘);}?>

并且在结尾加上

  1. <?php if(extension_loaded(‘zlib‘)){ob_end_flush();}?>

复制时还原为正规的PHP格式。

对于js文件,则在原来js文件的首行加上

  1. <?php if(extension_loaded(‘zlib‘)){ob_start(‘ob_gzhandler‘);} header(“Content-Type: text/javascript“); ?>

末尾同样加上

  1. <?php if(extension_loaded(‘zlib‘)){ob_end_flush();}?>

然后存为abc.js.PHP这样的文件,并且修改指向这个所有html,PHP等文件。

  1. <script type=“text/javascript“ src=“abc.js“ charset=“utf-8“></script>

  1. <script type=“text/javascript“ src=“abc.js.php“ charset=“utf-8“></script>

对于a.html文件就直接改成a.PHP访问好了,如果要保留原来的URL就 修改.htaccess 伪URL或者建立一个网页跳转吧,而其他的CSS等文本也就依此推算出该怎么改了。

压缩效能说明:jQuery库源代码为50k左右,先写代码时优化,去除空格组合函数等使其减小至26k,再使用GZIP压缩至14k!
再附一张其他网站的压缩效能比较图,图中三种方式都是GZIP,只是执行的方法不同而已。
gzip.png

分类:Other

PHP句法规则详解

2012-01-23 留下评论

1.简单句法规则(用花括号界定变量名,适用于PHP所有版本):
$a = ‘flower’;
echo “She received some $as”;
// 无效;字母s会被当成有效的变量名组成元素,但是这里的变量是$a
echo “She received some ${a}s”; // 有效
echo “She received some {$a}s”; // 有效;推荐的使用方法
我们希望表达的是”她收到一些花“,语境中的flower应该采用复数形式(也就是说应该在后面加上S),但是如果不对变量做任何界定的话,就会出现第一个echo的情况。显然我们希望输出的是$a而不是$as。那么我们通常是怎么来处理这个输出的呢?
echo “She received some $a”.”s”;
echo “She received some “.$a.”s”;
// 这两种习惯性的写法应该没有加花括号的写法简洁明了吧?
注意:不管{是出现在$前面还是后面,只有两者紧挨着时花括号才会被当成是界定符号。不要在之间加空格,要不然就会被当作普通的花括号处理
echo “She received some { $a}s”;
// 输出的结果为:She received some { flower}s
2.复杂句法规则(用花括号界定表达式等,使用与PHP4+):
echo “有效的写法: {$arr[4][3]}”;
// 有效;界定多维数组
echo “有效的写法: {$arr[‘foo’][3]}”;
// 有效;当在字符串中使用多维数组时,一定要用括号将它括起来
echo “有效的写法: {$this->width}00”;
// 有效;如果不界定的话,就会变成 $this->width00
echo “有效的写法: {$this->value[3]->name}”;
// 有效;该例演示了界定链式调用
echo “有效的写法: $name: {${$name}}”;
// 有效;该例演示的效果实际上是一个可变变量
echo “有效的写法: {${getName()}}”;
// 有效;该例演示了将函数的返回值作为变量名
echo “有效的下发: {${$this->getName()}}”;
// 有效;该例演示了将函数的返回值作为变量名
注意1:echo “这样写有效吗: {getName()}”;输出结果为:’这样写有效吗:
{getName()}’。因为里面不含$,所以花括号不会被当作界定符
注意2:echo “这样写有效吗:{$arr[foo][3]}”; 在回答这个问题前我们先来进行一个实验:
error_reporting(E_ALL);
$arr = array(‘a’, ‘b’, ‘c’, ‘d’=>’e’);
echo “This is $arr[d]”;
// 我们发现这样写是没有问题的,那么我们像下面这样写呢?
echo $arr[d];
产生了这样的错误:
Notice: Use of undefined constant d – assumed ‘d’
注意:采用了未定义的常量d,可能应该为’d’
那么如果我们像下面这样修改一下代码的话
error_reporting(E_ALL);
$arr = array(‘a’, ‘b’, ‘c’, ‘d’=>’e’);
define(‘f’, ‘d’);
echo $arr[f];
我们发现这次没有问题了。可以看出在字符串中数组的索引不加单引号是没有问题的,但是如果这种写法不是出现在字符串当中就会报错,而对于字符串中{$arr[foo][3]}的解析就是按照非字符串的方式解析的。所以说在字符串当中对数组只加花括号界定而不对索引加单引号的写法是错误的。因为程序会把不加单引号的索引当作是常量来进行解析,这就产生了错误。正确的写法应该是:
echo “有效的写法: {$arr[‘foo’][3]}”;
特别提醒一点:echo “This is $arr[d]”;这种写法虽然能够被程序解析,但这也仅限于数组是一维数组的情况。严谨的写法应该是:echo “This is {$arr[‘d’]}”;我的学生曾经在这一点上和我争论过,他说:既然前面一种写法能出结果,为什么一定要用后面一种写法呢?那么,我们再继续修改一下前面的代码
error_reporting(E_ALL);
$arr = array(‘a’, ‘b’, ‘c’,
‘d’=>array(‘e’=>’f’)
);
echo “This is $arr[d][e]”;
这样还能够被正确解析吗?我只想告诉你,加花括号是严谨的必要的。当然,如果你不是我的学生那么我管不了那么多……
注意3:
error_reporting(E_ALL);
$arr = array(‘a’, ‘b’, ‘c’, ‘d’);
echo “This is {$arr[2]}
“;
echo “This is {$arr[‘2’]}
“;
执行上面的代码。结果是一样的,为什么会这样呢?我只能告诉你PHP是弱类型语言,至于什么叫弱类型语言我就不在这里多说了。自己去Google一下吧。说了这么多,那么最能体现这些句法规则优势的具体应用在什么地方呢?—-SQL语句
// 示例一:
$SQL1 = “select * from table where id={$_GET[‘id’]}”;
// 示例二:
$SQL2 = “select * from table where id={$this->id}”;

分类:Other

Kloxo开启Gzip

2012-01-23 留下评论

原来默认的Kloxo配置里面,没有开启Gzip

Kloxo开启Gzip方法:

进入 PHP Config 里面,给 Output Compression 前面打上钩就可以了

记得重启httpd服务喔

分类:Other

Linux入门

2012-01-23 留下评论

在网上搜罗的一些资料,给自己日后部署更多VPS的时候,可以更快速的部署,省去一些麻烦

一、基础:

首先是3个比较好用的软件:

Putty http://www.putty.org/ SSH命令行,用于远程管理服务器

Filezilla http://filezilla-project.org/ 开源的FTP软件

WinSCP http://winscp.net 这个我也不知道叫啥,可以说是FTP和SSH的结合体吧,挺好用的,不过千万不要只用这个而不用Putty

然后是一系列的Linux常用命令:

目录操作:
rm -rf mydir /*删除mydir目录*/
cd mydir /*进入mydir目录*/
cd /*回上一级目录*/
cd .. /*回父目录,中间有空格*/
cd ~ /*回根目录*/
mv tools tool /*把tools目录改名为tool */
ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/
cp -a tool /home/vpser/www /*把tool目录下所有文件复制到www目录下 */

文件操作:
rm go.tar /* 删除go.tar文件 */
find mt.cgi /* 查找文件名为mt.cgi的文件 */
df h /* 查看磁盘剩余空间,好像没这个必要,除非你太那个了 */

解压缩:
tar xvf wordpress.tar /* 解压tar格式的文件 */
tar -tvf myfile.tar /* 查看tar文件中包含的文件 */

tar cf toole.tar tool /* 把tool目录打包为toole.tar文件 */
tar cfz vpser.tar.gz tool /* 把tool目录打包且压缩为vpser.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */

tar jcvf /var/bak/www.tar.bz2 /var/www/ /*创建.tar.bz2文件,压缩率高*/
tar xjf http://www.tar.bz2 /*解压tar.bz2格式*/

gzip -d ge.tar.gz /* 解压.tar.gz文件为.tar文件 */
unzip phpbb.zip /* 解压zip文件,windows下要压缩出一个.tar.gz格式的文件还是有点麻烦的 */

下载:
wget http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */
wget -c http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/* 继续下载上次未下载完的文件 */

进程管理:
ps -aux /*ps 进程状态查询命令*/

ps命令输出字段的含义:
[list]
[*]USER,进程所有者的用户名。
[*]PID,进程号,可以唯一标识该进程。
[*]%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
[*]%MEM,进程使用内存的百分比。
[*]VSZ,进程使用的虚拟内存大小,以K为单位。
[*]RSS,进程占用的物理内存的总数量,以K为单位。
[*]TTY,进程相关的终端名。
[*]STAT,进程状态,用(R运行或准备运行;S睡眠状态;I空闲;Z冻结;D不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
[*]START,进程开始运行时间。
[*]TIME,进程使用的总CPU时间。
[*]COMMAND,被执行的命令行。
[/list]

ps -aux | grep nginx /*在所有进程中,查找nginx的进程*/
kill 1234 /*1234为进程ID,即ps -aux 中的PID*/
killall nginx /*killall 通过程序的名字,直接杀死所有进程,nginx为进程名*/

Vim操作:

移动类的:
h/j/k/l: 左/下/上/右 移一格
w : 向后词移动 (前面加数字移动多少个词)
b : 向前词移动 (前面加数字移动多少个词)
e : 向后移到词末
ge : 向前移到词末
$ <End> : 行末
0 <Home> : 行首
tx : 向右查找本行的x并移到那儿(大写时向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%处
H/M/L : 屏幕的首/中/尾行
zt/zz/zb : 当前行移到屏幕的首/中/底部

跳转:
“ : 回到跳转来的地方
CTRL-O : 跳到一个 “较老” 的地方
CTRL-I <Tab> : 则跳到一个 “较新” 的地方

查找:
/ : 向下查找(后加关键字)
? : 向上查找(后加关键字)
n : 下一条符合的记录

编辑:
i : 转换到插入模式
x : 删除当前字符
. : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜)
u : 撤销操作
CTRL-R : 重做
p : 将删除的字符插入到当前位置(put)

退出保存:
:q : 退出
:q! : 不保存退出
ZZ : 保存后退出
:e! : 放弃修改重新编辑

转载自:VPS侦探 原文链接地址:http://www.vpser.net/build/linux-vps-ssh-command.html

二、Web服务器环境搭建:

# 下面是抄录 www.ctohome.com 的kloxo一键安装模块

# disable selinux 关闭防火墙
setenforce 0

# Remove exists softs 删掉默认软件
yum -y remove php mysql httpd;

# Create new soft download dir 新建文件夹并进入
mkdir -p /backup/www.ctohome.com;
cd /backup/www.ctohome.com;

# Install kloxo 下载安装kloxo
wget http://download.lxlabs.com/download/kloxo/production/kloxo-install-master.sh;
sh ./kloxo-install-master.sh;

# Install the Chinese language package 下载安装kloxo汉化模块
cd /usr/local/lxlabs/kloxo/httpdocs/lang;
wget http://www.ctohome.com/linux-vps-pack/kloxo_cn_www.ctohome.com.zip;
unzip kloxo_cn_www.ctohome.com.zip;

# Change the default charset from UTF-8 to off 修改Apache字符模块,关闭默认UTF-8限制
sed -i ‘s/UTF-8/Off/g’ /etc/httpd/conf/httpd.conf

# Install the php-mbstring for phpMyAdmin and other php scripts 安装一些附带组件
yum -y install php-mbstring php-bcmath php-mhash nmap
echo ‘extension=mbstring.so’ >> /usr/local/lxlabs/ext/php/etc/php.ini

# Change localtime to Shanghai time 修改服务器时区
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# Configure some services for security eg. lx,ftp,mail 编译安装安全服务组件
php /usr/local/lxlabs/kloxo/bin/common/misc/reset-mysql-root-password.phps;
cd /backup/www.ctohome.com;
wget http://www.ctohome.com/linux-vps-pack/kloxo_cn_www.ctohome.com.sql;
mysql -uroot kloxo< /backup/www.ctohome.com/kloxo_cn_www.ctohome.com.sql;

# Restart kloxo 重启kloxo
service kloxo restart

# skip-innodb and skip-bdb for mysql, if you don’t want skip them, delete this line 跳过某些MySQL模块安装,有助于减少内存消耗,但是会影响到某些程序的运行效率
sed -i “s/# Disabling symbolic-links/skip-innodb\nskip-bdb\n#Disabling symbolic-links/g” /etc/my.cnf
service mysqld restart

# Stop not necessary servces to release memory and avoid email spam: 关闭一些不必要的服务

service named stop
service qmail stop
service courier-imap stop

chkconfig named off
chkconfig qmail off
chkconfig courier-imap off

# Install unrar 安装RAR解压软件
wget http://dag.wieers.com/rpm/packages/unrar/unrar-3.6.8-1.el5.rf.i386.rpm;
rpm -Uvh unrar-3.6.8-1.el5.rf.i386.rpm;

# Check runing services and ports 检查服务器开发端口
nmap localhost

YOURIP=`hostname -i`;

至此,服务器上面的Web环境就安装完成了,LAMP平台搭建好,登录Kloxo后台地址为:http://youdomain.com:7778 默认帐号密码:admin

分类:Other

网站开启Gzip压缩的方法

2012-01-23 留下评论

网站要快除了虚拟主机需越接近自己的区域外,当然主机上也要开启一些系统功能来加速自己的网站,最常见的就是开启网页封包压缩Gzip。通常程序包内都有方便你启用的按钮,点一下就可以启用了。不过要注意的是主机本身若已经有启用,如果你再透过程序后台启用的话,很可能会相冲,造成网站出问题。因此在启用前请先利用Gzip检测工具帮自己网站检查一下吧!

网站启用了Gzip确实会替网站减肥不少,主要就是在输出时透过网站主机系统内部压缩输出大小,然后传给读取者,利用读取者端的计算机进行解压缩并读取,不然网络带宽太小,若是一直传输肥大的网页,看网页应该也会很吃力。

网站名称:网页gzip压缩检测

网站网址:http://gzip.zzbaike.com/

首先来到检测网站然后将网址输入在网页上的字段并点击提交,接着请耐心等候一下系统检测,最后画面就会秀出检测结果,从检测结果中可以很清楚的看到网页是否有开启Gzip封包压缩。如果没开启,这时你就可以赶快利用程序后端开启Gzip封包压缩,如果主机本身已经有启用了,那千万别再启用了,因为很可能会发生两者相冲,最后导致网页空白喔!

从上面可以很清楚的看到Gzip压缩后,网页大大减肥了,相信每个人看到这数字应该都想要开启这项功能吧?

不过要注意的是这种功能会加重服务器的负担,如果你的虚拟主机有限制CPU TIME,那很可能要稍微注意一下,不过压缩开过头导致网站CPU TIME冲高。当然有时候可能因为某些因素您可能启用Gzip后会造成网页空白或是出意外,或是主机不支持开启Gzip,这时请您还是关闭Gzip功能吧!

开启Gzip功能可以用插件,也可以用代码。插件网上有很多,自己可以搜搜;用代码可以利用.htaccess启动Gzip网页压缩

这方法是通过Apache的「Enabling Compression」来达到。请透过FTP软件将您的.htaccess下载回来,如果没有请用笔记本建立一个,储存时类型请选择所有档案,然后档名输入「.htaccess」即可。在.htaccess中请加入以下语法,然后储存上传覆盖即可。

<IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don’t deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

另外一个方法就是通过PHP函式的方式来启动网页压缩,但前提是您的系统必须有支持「Zlib Compression Functions」才有办法启动,您可以丢个网页探针到服务器上查询看看就知道了。语法加入方式很简单,透过FTP软件连到WordPress根目录,然后下载其中的「index.php」并使用笔记本软件开启,在「<?php」之后加入以下语法,然后上传覆盖即可。请注意,不是下载布景档案的 index.php,而是WordPress主程序。修改完后请上传覆盖掉原本的就可以了。不过这样的方式比较麻烦,当WordPress版本更新时,您必须重新加入语法。

ob_start(’ob_gzhandler’);

以上两种方法请选择一种使用,大家可以自己试试看,以上两种方法和小经验提供给大家参考。

分类:Other

MySQL 当记录不存在时插入insert if not exists

2011-12-12 留下评论

在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问题的解决方案。

问题:我创建了一个表来存放客户信息,我知道可以用 insert 语句插入信息到表中,但是怎么样才能保证不会插入重复的记录呢?

答案:可以通过使用 EXISTS 条件句防止插入重复记录。

示例一:插入多条记录

假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:

Code:

INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, ‘advertising’
FROM suppliers
WHERE not exists (select * from clients
where clients.client_id = suppliers.supplier_id);

示例一:插入单条记录

Code:

INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345, ‘IBM’, ‘advertising’
FROM dual
WHERE not exists (select * from clients
where clients.client_id = 10345);

使用 dual 做表名可以让你在 select 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。

分类:Other