linux下alias命令详解

分类:技术文档 | 阅读(3709) | 发布于:2014-03-07 09:02 | 标签:无

linux下alias命令详解


功能说明:设置指令的别名。
语  法:alias[别名]=[指令名称]

参  数 :若不加任何参数,则列出目前所有的别名设置。
举    例 :$ alias
                 alias egrep='egrep --color=auto'
                 alias fgrep='fgrep --color=auto'
                 
alias grep='grep --color=auto'
                 alias l='ls -CF'
                 alias la='ls -A'
                 alias ll='ls -alF'
                 alias ls='ls --color=auto'

说     明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。

    还有,如果你想给每一位用户都生效的别名,请把alias la='ls -al' 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用.

    利用alias可以把很长的命令变成任意我们喜欢的简短的

    如果想永久生效,就把这条写入到 /etc/bashrc里面

阅读更多...

Linux scp 拷贝文件

分类:技术文档 - JS文档 | 阅读(2726) | 发布于:2014-03-07 09:02 | 标签:无

1.从远程机器拷贝文件 到 本地来

scp root@192.168.1.201:/opt/79/win2003-8.img /www 
命令格式: scp [远程计算机用户名]@[远程计算机ip地址]:[要拷贝的文件路径及文件名] [存放该文件的本机路径]


2.从 本地 拷贝文件到 远程机器上;

scp -r /home/ root@192.168.1.100:/root/
scp /home/test.txt root@192.168.1.100:/root/
其实上传文件和文件夹区别就在参数 -r, 跟cp, rm的参数使用差不多, 文加价多个 -


命令格式为: scp [要拷贝的文件路径及文件名] [远程计算机用户名]@[远程计算机的ip地址]:[远程计算机存放该文件的路径]

阅读更多...

vi快捷键必知必会

分类:技术文档 | 阅读(6359) | 发布于:2014-03-07 09:02 | 标签:无

vi快捷键必知必会

文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

vim表

vim表

阅读更多...

云主机密钥登录,磁盘挂载分区和云硬盘备份方法:华为云VPS数据盘挂载

分类:技术文档 | 阅读(8916) | 发布于:2014-03-07 09:02 | 标签:无

云主机密钥登录,磁盘挂载分区和云硬盘备份方法:华为云VPS数据盘挂载

VPS主机   2014年01月05日 17:51  

Hwclouds华为云主机充8元送1000元相当地吸引人,其中主要原因是华为云主机有一个特价VPS,年付是990元,花8块钱用上一年的1GB内存的VPS主机还是很值得的。部落在2日就已经收到了Hwclouds华为云主机送的1000元奖励,这几天比较忙,没去管它。

直到看到有朋友留言说华为这厮已经取消了990元的特价VPS,花8块钱也只能用上三个月的VPS主机了,因为华为云主机最便宜一款VPS主机每月要300多元,如果要继续使用华为云主机,还得自己另掏钱购买。说好的1000元直接贬值为原来三分之一,顿时无语!

阿里云VPS最便宜的VPS主机是一个月要50元,内存为512MB,带宽为1MB。华为云主机最便宜的一款每月要300多元,价格是阿里云的六倍,而内存仅2GB,带宽也仅为1MB。300元在国外直接可以买同样配置的VPS主机一年,愿意花3000元的朋友还不如去玩独立服务器。

总之,不管华为云主机“此 举”是出于什么目的 — 是“心有余 力不足”,还是技术部与推广部没事先打好招呼,抑或是一场纯粹“网络推广”— 突然取消特价VPS虽然没有给用户造成什么损失,但是奖励金额要在3月31日前使用完,假如华为云主机在4月后又推出“特价VPS”,那么华为云主机可能 会在那些充了8元的用户心中造成一些不好印象。

本篇文章只是分享一下Hwclouds华为云主机使用密钥登录,新的硬盘挂载分区方法,以及使用云硬盘备份VPS的办法,如果你用的是其它的云主机,或者自己有多个VPS主机,都可以参考本文对VPS主机进行增加硬盘和分区,对数据执行备份。不想用华为云主机的,可以试试:

云主机密钥登录,磁盘挂载分区和云硬盘备份方法:华为云VPS数据盘挂载

一、云主机密钥登录方法

1、华为云主机在创建VPS主机时,可以选择使用密码登录VPS,也可以使用密钥登录,密钥只能下载一次。

云主机下载密钥

2、打开Puttygen,导入下载下来的密钥文件。

云主机导入密钥内容

3、如果你想使用Putty来登录VPS主机,则点击Puttygen的保存私钥到本地。

云主机保存密钥到本地

4、如果是使用Xshell登录VPS主机,则需要选择导出为Opens-sh Key。

云主机导出新的形式

5、在使用Putty或者Xshell登录时,选择刚刚保存转换的密钥文件即可。

云主机使用密钥文件登录

二、Windows VPS主机硬盘挂载分区

1、首先是购买一个华为云主机的硬盘。

云主机购买一个硬盘

2、接着到主机管理列表中,选择“更多”中的“挂载云硬盘”。

云主机挂载云硬盘

3、已经挂载的硬盘还可以卸载,假如你有多个主机的话,就可以直接将该硬盘挂载到其它的VPS主机上,实现数据的快速转移。

云主机数据快速转移

4、如果你购买的是华为云主机的Windows VPS主机,挂载了硬盘后,还得到Windows中对硬盘进行分区,否则硬盘就是一个石头。

5、先进入硬盘管理。

云主机进入磁盘管理

6、将挂载的硬盘联机。

云主机硬盘联机

7、联机后,要对新的硬盘进行格式化。

云主机硬盘初始化

8、已经激活的硬盘还要进行分区。

云主机格式化硬盘

9、对新硬盘添加新的分卷,接下来的操作就是点击“下一步”了。

云主机添加新加卷

10、如果是对新硬盘添加多个分区的话,重复以上操作,最后就可以Windows VPS中看到刚刚挂载的新硬盘并可以使用。

云主机可以使用了

三、Linux VPS主机挂载硬盘分区

1、输入命令:fdisk –l,可以查看当前VPS主机的硬盘使用情况,最下方会显示未使用的磁盘。

云主机查看未使用的硬盘

2、其中 xvda 为系统盘,而 xvde 为未使用磁盘,执行:fdisk /dev/xvde,进入未使用磁盘中。

3、输入 p 进入分区,创建 n 是创建新的磁盘。

云主机创建分区

4、输入 p 将磁盘分区,输入 1 设置编号,其它的默认,最后输入 w 写入配置。

云主机写入配置

5、输入命令:fdisk –l,可以看到xvde多出了新的分区。重启生效,也可以直接输入 partprobe,执行:mkfs.ext3 /dev/xvde1 格式化新的分区。

云主机格式化分区

6、新建一个目录:mkdir -p /data,名字可以自己写,执行:mount /dev/xvde1 /data,将新的硬盘分区挂载到data目录下,这样我们就可以开始使用硬盘了。

7、最后也很重要,就是要让开机也挂载硬盘,执行:vi /etc/fstab,在最后一行加入 /dev/xvde1 ,/data是挂载目录,其它的照着上面的格式写,最后保存。(点击放大)

云主机开机启动

8、重启VPS,执行:df -h,完工。

云主机完成硬盘挂载分区

9、用Winscp进入data,就可以看到新的磁盘分区的数据了。

云主机看到新的硬盘

四、云主机VPS备份数据方法

1、云主机VPS由于数据盘和系统盘实现的分离(PS:有多个VPS主机的朋友也可以实现的这样的效果),我们可以将系统盘上的数据备份到数据盘上。

2、这里从华为云主机的官方文档提炼了自动备份数据到备份磁盘中,你需要改动的是/data,这是你的备份盘挂载的目录,设置待备份目录,即你想要备份的文件目录。


# /bin/bash 
# 设置数据要备份到云硬盘的哪个目录下的basedir变量,目录名称中标注日期 
basedir=/data/system_$(date +%Y-%m-%d) 
# 主要环境变量设置 
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH 
export LANG=C 
# 设置待备份目录对应的备份盘中的目录变量 
etcd=$basedir/etc 
homed=$basedir/home 
spoold=$basedir/spool 
bootd=$basedir/boot 
rootd=$basedir/root 
usrd=$basedir/usr 
optd=$basedir/opt 
sambad=$basedir/samba 
wwwd=$basedir/www 
myd=$basedir/mysql 
# 判断上述目录是否存在,若不存在则创建。 
for dirs in $etcd $homed $spoold $bootd $rootd $usrd $optd $sambad $wwwd $myd 
do 
    [ ! -d "$dirs" ] && mkdir -p $dirs 
done 
# 将系统目录分别备份下来。 
cp -a /etc/* $etcd 
cp -a /home/* $homed 
cp -a /var/spool/* $spoold 
cp -a /boot/* $bootd 
cp -a /root/* $rootd
cp -a /usr/* $usrd 
cp -a /opt/* $optd 
cp -a /samba/* $sambad 
cp -a /var/www/* $wwwd 
cp -a /var/lib/mysql/* $myd

3、进入data 目录,执行:vi backup_system.sh,将以上代码粘贴进去,保存,退出。赋予执行权限:chmod 755 ./backup_system.sh

云主机备份数据

4、执行:/data/backup_system.sh,手动备份一次。

云主机手动备份

5、这时备份盘中就能看到以system_时间格式的备份数据了,如果你的系统盘数据很大的话,可能需要等待十几分钟的时间。

云主机看到备份数据

6、利用定时任务我们可以实现自动定时备份,执行:vi /etc/crontab,添加命令:* 1 * * 0 root /data/backup_system.sh ,表示每个星期天的凌晨1点自动执行备份。

7、crontab的基本格式是:*  *  *  *  *  command,表示:分 时 日 月 周 命令,例如:10 1 * * * root /data/backup_system.sh 表示每天凌晨1点10分执行命令定时任务。

8、除了上面介绍的云主机整体数据备份外,我们还可以采用增量备份和同步备份。命令:dump -0u –f /data/home.dump /home,是将挂载在home目录的分区整体数据进行备份。

9、 命令:dump -1u –f /data/home.dump.1 /home,则是针对第一次备份实现增量备份,即比较home新的数据内容,备份新增加的数据。dump -2u –f /data/home.dump.2 /home是对第二次备份进行增量备份,最多可以做9个差异备份。

10、同步备份实际上是做一个文件目录的镜像,源目录的文件增加或者减少,备份目录的文件也会相应的地增加或者减少,命令:rsync -av /var /data/var ,这样在data目录中就能看到Var目录备份了。

云主机同步备份

五、云主机硬盘挂载备份小结

1、以上的云主机硬盘挂载分区和备份方法都可以应用到传统的VPS主机,命令:rsync -av -e -ssh /var root@198.120.81.126:/data/backup ,就是将/var目录同步备份到远程的VPS主机的/data/backup目录中。

2、 Hwclouds华为云主机又搞一个推广活动:http://activity.hwclouds.com/user/cyb/,这货之前是 1000,现在又来个3000元的云主机试用,有兴趣的朋友可以试试。特别提醒一下:看清活动规则,充值前一定要问客服能不能收到这3000元的奖励,千 万别白给华为送“红包”了。华为是大公司,送8元的“小红包”是不会感激你的。

阅读更多...

通过JS发送请求的几种方法

分类:技术文档 | 阅读(1844) | 发布于:2014-03-07 09:00 | 标签:无

通过JS发送请求的几种方法


    var httpAdapter;
    //创建一个httpAdapter对象
    function GethttpAdapterRequest()
    {
        //httpAdapter = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new httpAdapterRequest();
         return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
   
    //以Get方式发送请求,默认Content-Type为"text/xml; charset=gb2312"
    this.GetData = function(url)
    {
        httpAdapter = GethttpAdapterRequest();
   httpAdapter.Open("GET",url, false);
   httpAdapter.SetRequestHeader ("Content-Type","text/xml; charset=gb2312");
//   httpAdapter.SetRequestHeader ("SOAPAction","http://tempuri.org/getStr");
   httpAdapter.Send(context);
   return httpAdapter;
    }
   
    //以POST方式发送请求,默认Content-Type为"application/x-www-form-urlencoded"
    this.PostData = function (url,context)
    {
        httpAdapter = GethttpAdapterRequest();
        httpAdapter.Open("POST",url, false);
   httpAdapter.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//   httpAdapter.SetRequestHeader ("SOAPAction","http://tempuri.org/getStr");
   httpAdapter.Send(context);
   return httpAdapter;
    }
   
   
    this.GetDataInAsync = function (url,callbackMethod)
    {
        httpAdapter = GethttpAdapterRequest();
   httpAdapter.Open("GET",url, true);
   httpAdapter.SetRequestHeader ("Content-Type","text/xml; charset=gb2312");
//   httpAdapter.SetRequestHeader ("SOAPAction","http://tempuri.org/getStr");
   httpAdapter.Send(context);
   httpAdapter.onreadystatechange = callbackMethod;
    }
   
    this.PostDataInAsync = function (url,context,callbackMethod)
    {
        httpAdapter = GethttpAdapterRequest();
        httpAdapter.Open("POST",url, true);
   httpAdapter.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//   httpAdapter.SetRequestHeader ("SOAPAction","http://tempuri.org/getStr");
   httpAdapter.Send(context);
   httpAdapter.onreadystatechange = callbackMethod;
    }
   
    //获取指定地址的域名
    this.GetHost = function(url)
    {
        var host = "null";
        var ArryHost=new Array();
        if(typeof url == "undefined"|| null == url)
        {
            url = window.location.href;
        }
        var regex = /.*\:\/\/([^\/]*).*/;
        var match = url.match(regex);
        if(typeof match != "undefined" && null != match)
        {
            ArryHost = match[1].split(/:/);
            host =ArryHost[0];
        }
        return host;
    }
   
    //获取当前地址的域名
    this.GetLocalHost=function()
    {
       return GetHost(document.URL);
    }

阅读更多...

在apache中使用 memcache 来作 session 存储

分类:技术文档 | 阅读(5766) | 发布于:2014-03-07 08:59 | 标签:无

在apache中使用 memcache 来作 session 存储

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weight"、"timeout"、"retry_interval" 等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" 。
session_start();
$_SESSION["UserID"]=123;
echo session_id();
?>
用 sessionid 去 memcached 里查询一下:
$memcache = memcache_connect('localhost', 11211);
var_dump($memcache->get('19216821213cxycedec65b0883238c278eeb573e077'));
?>
用 memcache 来存储 session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺,但对 session 数据来说也不是很大的问题。

阅读更多...

基于 Apache 在本地配置多个虚拟主机

分类:技术文档 | 阅读(5322) | 发布于:2014-03-07 08:59 | 标签:无

基于 Apache 在本地配置多个虚拟主机

如何使用 Apache 在本地配置出多个虚拟主机呢?而且使用不同的“域名”来访问本地不同的站点呢?

一般情况下,咱们都使用 localhost 来访问本机上的服务器,在我们的 C:/WINDOWS/system32/drivers/etc/hosts 文件中默认有一个:

127.0.0.1       localhost

当我们在浏览器地址栏键入:

的时候,会显示出服务器根目录中的许多文件夹(若你的根目录不是只有一个站点的话),就像:

Index of /

    * phpMyAdmin/
    * userAdminManager/

现在我想通过一个自定义的“域名”来访问我的根目录中的站点,譬如:

http://test
http://blog


1> 修改系统的 hosts 文件:

打开之前说过的系统的 hosts 文件,来给我们的电脑添加两个“假的”DNS 项,加入代码:

127.0.0.2      test
127.0.0.3      blog

这样,我们的浏览器就会将 dbmanager 主机名解析为 127.0.0.2,将 phpweb20 主机名解析为 127.0.0.3。

2> 修改 Apache 配置文件:

打开加载虚拟主机的配置项
Include conf/extra/httpd-vhosts.conf 




3> 创建各个虚拟主机的子配置文件:

NameVirtualHost test:80
NameVirtualHost blog:80

#test 虚拟主机设置


    ServerName test
    DocumentRoot "E:/test"

   
          Options Indexes FollowSymLinks MultiViews
          AllowOverride all
               Order Allow,Deny
          Allow from all
   

    
    #修改PHP配置 [可选]
    php_value magic_quotes_gpc off
    php_value register_globals off


#blog 虚拟主机设置


    ServerName blog
    DocumentRoot "E:\Blog_root\wwwroot"

   
          Options Indexes FollowSymLinks MultiViews
          AllowOverride all
               Order Allow,Deny
          Allow from all
   

    
    #修改PHP配置 [可选]
    php_value magic_quotes_gpc off
    php_value register_globals off


4> 重启 Apache 服务:

这个就不多说了。

完毕!好了,在浏览器地址栏输入分别输入:

http://test
http://blog

我们的目的达到了!! 

阅读更多...

献给不会哄女人的男人

分类:技术文档 | 阅读(5158) | 发布于:2014-03-02 09:28 | 标签:无

献给不会哄女人的男人

1、如果你的女人在你面前哭了,无论什么原因,请抱紧她,再反抗也要抱紧,趴在桌子上永远没有在你怀里安心
2、如果你的女人指出了你的不是,请不要总是嫌她唠叨,若不是因为在乎她不会说你;
3、如果你的女人和你赌气不理你,不要也学她,这正是考验你们的时候,“脸皮厚”的精神此时不发扬又更待何时;
4、如果你的女人不听你的话,转身走了,一定要追上她,若真的还爱着,丢下她一个人你又如何放心呢;
5、如果你的女人说“你走吧,我不想理你了”,千万不要相信,女人最是口是心非,其实那是她最需要你的时候;
6、如果你的女人生气了,说心情不好不想吃饭,千万不要问她想干吗想吃什么,她一定说什么都不要,买好你记忆里她最爱吃的东西(最好是有包装的,这样等她心情好了再吃也不会冷),但一定不要以自己也不吃来威胁她;
7、如果你的女人对你们说狠话,请保持三秒钟不说话,然后搂过她的肩,笑笑说:“老婆,你讲话的声音真可爱!”
8、珍惜你们的女人,不要把她们想的坏想的复杂,女人要的永远最简单!
9、她忙碌的时候不一定就是充实,或许只是因为寂寞,所以,如果你爱上她,就不要怕打扰她;
10、她跟你吵架时不一定就是真有事,而是想撒娇没找对途径,错误的以为这样你就会注意到她;
11、吵完架不要给她时间冷静,实际上她一点也不需要冷静,她需要你跟她说话哄哄她;
12、她想哭时先不要问原因,而是在任何时候任何状态下,都先给她一个肩膀让她有依靠;
13、她不知道该怎么办时就喜欢说分手,多半都是在以退为进,尽管常常让自己没有了台阶下;
14、她整天跟你唠叨个没完时,是因为她还在爱你愿意与你分享,女人不爱的方式,才是沉默;
15、她成了“黄脸婆”的原因常是因为沮丧,而这种沮丧一定和你的爱有关,所以,也就能够改变;
16、她梦想一些不切合实际的浪漫时,不要粗暴地打断她,如果连梦想也枯萎的女人更可怕;
17、大多数时候她都是动态的,你也千万别总是静态,相处时你们更需要互动,哪怕是争执不休;
18、女人都是水做的,所以情愿热着她也别冷着她,不然一过了零度她就会结成了冰,最终冻着你;
19、她有时候需要听一些谎言,比如要你说什么你就说什么,在你不脸红的情况下说到她脸红;
20、她烦闷的时候最不喜欢一个人待着,这时候她是不会嫌你烦的,你越跟她缠绵她心里就越好受;
21、当她吃醋的时候可不是好玩的,最有效的办法还是让她无醋可吃,要不在醋缸里淹死的可是你;
22、女人的眼泪并不都是珍珠,但你一定每次都把它们当成珍珠,这样她才会变得连哭都很吝啬;
23、她说得话你可以适当忽略,但在她需要你的时刻请陪在她身边,这常常可以让她回味一辈子;
24、女人都是感性的,所以常会做出一些你认为弱智的事情,也正因为如此,她才需要你的提醒与呵护;
25、不是所有的女人做了母亲后都会长大和变得坚强,所以,正确教育孩子的重任常常是在你的肩膀上;
26、她骂你的时候是因为爱你,她打你的时候也是因为爱你,这一点上和男人的表现刚好完全相反;
27、温柔的女人也会有脾气,坚强的女人也会有脆弱,独立的女人也会有固执,你选择了她就请承担她。
 

阅读更多...

PHP header() 函数详细说明

分类:技术文档 - JS文档 | 阅读(11968) | 发布于:2014-02-27 14:38 | 标签:无

如果您刚刚开始学习PHP,可能有许多函数需要研究,今天我们就来学习一下PHP Header()的使用方法,更多的使用说明,请您参照PHP中文手册,下面是关于header函数的详细使用说明

不管页面有多少header,它会执行最后一个,不过是有条件的,例如:

header('Location:http://www.liehuo.net');
header('Location:http://www.g.cn');
header('Location:http://www.baidu.com'); 

这个就会跳到百度

header('Location:http://www.liehuo.net');echo '烈火网;
header('Location:http://www.g.cn');
header('Location:http://www.baidu.com');

这个就会跳到google
下面是关于header函数的详细使用说明
一、作用:
~~~~~~~~~
PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传送的内容则需要熟悉一下HTTP协议了,与PHP无关了
传统的标头一定包含下面三种标头之一,并只能出现一次。

Location: xxxx:yyyy/zzzz
Content-Type: xxxx/yyyy
Status: nnn xxxxxx 

二、先来了解一下HTTP协议的运作方式
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTTP协议 是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是 MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误 的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
它分四个过程,在HTTP协议中,服务端是指提供HTTP服务的部分,客户 端是指你使用的浏览器或者下载工具等等。在通讯时,由客户端发出请求连接,服务端建立连接;然后,客户端发出HTTP请求(Request),服务端返回 响应信息(Respond),由此完成一个HTTP操作。

HTTP状态检测(HTTP Header):http://www.veryhuo.com/tools/http_header.php

三、HTTP协议状态码表示的意思
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1××  保留
2××  表示请求成功地接收
3××  为完成请求客户需进一步细化请求
4××  客户错误
5××  服务器错误

四、操作实例:
~~~~~~~~~~~~~
重定向功能,这种最常见

   Header("Location: http://www.liehuo.net/");
?>
 
强制用户每次访问这个页面时获取最新资料,而不是使用存在客户端的缓存。

代码
//告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。
header("Expires: Mon, 26 Jul 1970 05:00:00 GMT");
//告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
//告诉客户端浏览器不使用缓存
header("Cache-Control: no-cache, must-revalidate");
//参数(与以前的服务器兼容),即兼容HTTP1.0协议
header("Pragma: no-cache");
//输出MIME类型
header("Content-type: application/file");
//文件长度
header("Content-Length: 227685");
//接受的范围单位
header("Accept-Ranges: bytes");
//缺省时文件保存对话框中的文件名称
header("Content-Disposition: attachment; filename=$filename");
?> 

输出状态值到浏览器,主要用于访问权限控制

header('HTTP/1.1 401 Unauthorized');
header('status: 401 Unauthorized');
?>

比如要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不存在

header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
?>

注意: 传统的标头一定包含下面三种标头之一,并只能出现一次。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx 在新的多型标头规格 (Multipart MIME) 方可以出现二次以上。
使用范例
范例一: 本例使浏览器重定向到 PHP 的官方网站。

Header("Location: http://www.liehuo.net/"); exit; 

范例二: 要使用者每次都能得到最新的资料,而不是 Proxy 或 cache 中的资料,可以使用下列的标头

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache"); 

范例三: 让使用者的浏览器出现找不到档案的信息。

header("Status: 404 Not Found");

范例四:让使用者下载档案。

header("Content-type: application/x-gzip");
header("Content-Disposition: attachment; filename=文件名");
header("Content-Description: PHP3 Generated Data");

header -- 发送一个原始 HTTP 标头说明  

void header ( string string [, bool replace [, int http_response_code]] )

  header() 函数用来发送一个原始 HTTP 标头。有关 HTTP 标头的更多内容见 HTTP/1.1 规范。
  可选参数 replace 指明是替换掉前一条类似的标头还是增加一条相同类型的标头。默认为替换,但如果将其设为 FALSE 则可以强制发送多个同类标头。例如:

   header('WWW-Authenticate: Negotiate');
  header('WWW-Authenticate: NTLM', false);
 ?>

  第二个可选参数 http_response_code 强制将 HTTP 响应代码设为指定值(此参数是 PHP 4.3.0 新加的)。
 有两种特殊的 header 调用。第一种是标头以字符串“HTTP/”(大小写不重要)开头的,可以用来确定要发送的 HTTP 状态码。例如,如果配置了 Apache 用 PHP 来处理找不到文件的错误处理请求(使用 ErrorDocument 指令),需要确保脚本产生了正确的状态码。

 header("HTTP/1.0 404 Not Found")
?>

  注: HTTP 状态码标头行总是第一个被发送到客户端,而并不管实际的 header() 调用是否是第一个。除非 HTTP 标头已经发送出去,任何时候都可以通过用新的状态行调用 header() 函数来覆盖原先的。

  HTTP状态检测(HTTP Header):http://www.veryhuo.com/tools/http_header.php

  第二种特殊情况是以“Location:”标头。它不只是把这个标头发送回浏览器,它还将一个 REDIRECT(302)状态码返回给浏览器,除非之前已经发出了某个 3xx 状态码。

   header("Location: http://www.example.com/"); /* 重定向浏览器 */
  /* 确保重定向后,后续代码不会被执行 */
  exit;
 ?>

  注: HTTP/1.1 标准需要一个绝对地址的 URI 做为 Location: 的参数, 但有一些客户端支持相对 URI。通常可以使用 $_SERVER['HTTP_HOST']、$_SERVER['PHP_SELF'] 及 dirname() 函数来自己从相对 URI 产生出绝对 URI: 

   header("Location: http://%22.$_server['http_host'/]
  . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')
  ."/".$relative_url);
 ?>

  注: 即使启用了 session.use_trans_sid,Session ID 也不会随着 Location 头信息被传递。必须手工用 SID 常量来传递。
  
  PHP 脚本通常会产生一些动态内容,这些内容必须不被浏览器或代理服务器缓存。很多代理服务器和浏览器都可以被下面的方法禁止缓存:

   header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 过去的时间
 ?>

  注: 可能会发现即使不输出上面所有的代码,网页也没有被缓冲。用户有很多选项可以设置来改变浏览器的默认缓存行为。通过发送上述标头,应该可以覆盖任何可以导致脚本页面被缓存的设置。
  
  另外,当使用了 session 时,利用 session_cache_limiter() 函数和 session.cache_limiter 选项可以用来自动产生正确的缓存相关标头。
  
 要记住 header() 必须在任何实际输出之前调用,不论是来自普通的 HTML 标记,空行或者 PHP。有一个常见错误就是在通过 include(),require() 或一些其它的文件存取类函数读取代码时,有一些空格或者空行在调用 header() 之前被发送了出去。同样在一个单独的 PHP/HTML 文件中这个错误也很普遍。

  
    /* 这将产生一个错误,因为在调 header()
  * 之前已经输出了东西 */
  header('Location: http://www.example.com/');
  ?>

  注: 自 PHP 4 起,可以通过一些输出缓冲函数来解决这个问题。代价是把所有向浏览器的输出都缓存在服务器,直到下命令发送它们。可以在代码中使用 ob_start() 及 ob_end_flush() 来实现这样的功能,或者通过修改 php.ini 中的 output_buffering 配置选项来实现,也可以通过修改服务器配置文件来实现。

附header()两个常用用法:

//设置页面编码:
header('Content-Type:text/html;charset=gb2312');
//调整页面:
header('location:http://www.baidu.com');

阅读更多...

什么样的员工会成为股东

分类:技术文档 | 阅读(9659) | 发布于:2014-02-18 14:46 | 标签:无

 一、忠诚——忠心者不被解雇 单位可能开除有能力的员工,但对一个忠心耿耿的人,不会有领导愿意让他走,他会成为单位这个铁打营 盘中最长久的战士,而且是最有发展前景的员工。 1。站在老板的立场上思考问题; 2。与上级分享你的想法; 3。时刻维护公司的利益; 4。琢磨为公司赚钱; 5。在外界诱惑面前经得起考验。

 二、敬业——每天比老板多做一小时 随着社会进步,人们的知识背景越来越趋同。学历、文凭已不再是公司挑选员工的首要条件。很多公司考 察员工的第一条件就是敬业,其次才是专业水平。 1。工作的目的不仅仅在于报酬; 2。提供超出报酬的服务与努力; 3。乐意为工作作出个人牺牲; 4。模糊上下班概念,完成工作再谈休息; 5。重视工作中的每一个细节。

 三、自动自发——不要事事等人交代 不要事事等人交代,一个人只要能自动自发地做好一切,哪怕起点比别人低,也会有很大的发展,自发的 人永远受老板欢迎。 1。从“要我做”到“我要做”; 2。主动分担一些“分外”事; 3。先做后说,给上司惊喜; 4。学会毛遂自荐; 5。高标准要求:要求一步,做到三步; 6。拿捏好主动的尺度,不要急于表现、出风头甚至抢别人的工作。

 四、负责——绝对没有借口,保证完成任务 勇于承担责任的人,对企业有着重要的意义,一个人工作能力可以比别人差,但是一定不能缺乏责任感, 凡事推三阻四、找客观原因,而不反思自己,一定会失去上级的信任。 1、责任的核心在于责任心; 2、把每一件小事都做好; 3、言必信,行必果; 4、 错就是错,绝对不要找借口; 5、让问题的皮球至于你; 6、 不因一点疏忽而铸成大错。

 五、注重效率——算算你的使用成本 高效的工作习惯是每个可望成功的人所必备的,也是每个单位都非常看重的。 1。跟穷忙、瞎忙说“再见”; 2。心无旁骛,专心致志; 3。量化、细化每天的工作; 4。拖延是最狠毒的职业杀手; 5。牢记优先,要事第一; 6。防止完美主义成为效率的大敌。

 六、结果导向——咬定功劳,不看苦劳 “无论黑猫、白猫,抓得到老鼠就是好猫!”,无论苦干、巧干,出成绩的员工才会受到众人的肯定。企业 重视的是你有多少“功”,而不是有多少“苦”。 1。一开始就要想怎样把事情做成; 2。办法永远要比问题多; 3。聪明地工作而不仅仅是努力工作; 4。没有条件,就创造条件; 5。把任务完成得超出预期。

 七、善于沟通——当面开口,当场解决 不好沟通者,即便自己再有才,也只是一个人的才干,既不能传承,又无法进步;好沟通者,哪怕很平庸,也可以边干边学,最终实现自己的价值。 1。沟通和八卦是两回事; 2。不说和说得过多都是一种错; 3。带着方案去提问题,当面沟通,当场解决 4。培养接受批评的情商; 5。 胸怀大局,既报喜也报忧; 6。内部可以有矛盾,对外一定要一致。

 八、合作——团队提前,自我退后 团队提前,自我退后。不管个人能力多强,只要伤害到团队,公司决不会让你久留——不要认为缺了你一 个,团队就无法运转! 1。滴水融入大海,个人融入团队; 2。服从总体安排; 3。遵守纪律才能保证战斗力; 4。不做团队的“短板”,如果现在是,就要给自己“增高”; 5。多为别人、为团队考虑。

 九、积极进取——永远跟上企业的步伐 个人永远要跟上企业的步伐,企业永远要跟上市场的步伐;无论是职场还是市场,无论是个人还是企业, 参与者都不希望被淘汰。为此就一定要前进,停就意味着放弃,意味着出局! 1。以空杯心态去学习、去汲取; 2。不要总生气,而要争气; 3。不要一年经验重复用十年; 4。挤时间给自己“增高”、“充电”; 5。发展自己的“比较优势”; 6。挑战自我,未雨绸缪。

 十、低调—— 才高不必自傲 才高不必自傲,不要以为自己不说、不宣扬,别人就看不到你的功劳。所以别在同事面前炫耀。 1。不要邀功请赏; 2。克服“大材小用”的心理; 3。不要摆架子耍资格; 4。凡是人,皆须敬; 5。努力做到名实相符,要配的上自己的位置; 6。成绩只是开始,荣誉当作动力。

 十一、节约——别把老板的钱不当钱 节约不是抠门,而是美德。不要把公司的钱不当钱,公司“锅”里有,员工“碗”里才有;同样,“锅”里 多,“碗”里也自然就多。而掌勺的,恰恰就是你自己。 1。报销账目,一定要诚信; 2。不耍小聪明,不贪小便宜; 3。不浪费公司的资源,哪怕是一张纸; 4。珍惜工作的每一分钟时间; 5。每付出成本,都要力争最大收益; 6。记住:省下的,就是利润!

 十二、感恩——想想是谁成就了今天的你 为什么我们能允许自己的过失,却对他人、对公司有这么多的抱怨?再有才华的人,也需要别人给你做事 的机会,也需要他人对你或大或小的帮助。你现在的幸福不是你一个人就能成就的。 1。老板给了你饭碗; 2。工作给你的不仅是报酬,还有学习、成长的机会; 3。同事给了你工作中的配合; 4。客户帮你创造了业绩; 5。对手让你看到距离和发展空间; 6。批评者让你不断完善自我。 职业素养的高低,品格的优劣,对人一生的成就有重大的影响。

阅读更多...