分手纪念日

2007/01/30 21:11 ArthurXF
  2002年的今天,我最爱的女友离开了我,让我痛心不已,今天在这里回忆一下,把美好的时光,保留在我的记忆中,也祝她幸福快乐!
Tags: , ,
引用
crontab
功能说明:设置计时器。
语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
配置命令的取值范围:
minute (0-59), hour (0-23), day of the month (1-31), month of the year (1-12), day of the week (0-6 with 0=Sunday).

参  数:
-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。


详细说明:
时程表的格式如下 :
f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
引用
例子:
每月每天7点的第 0 分钟执行一次 /bin/ls :
0 7 * * * /bin/ls

在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"

注意:
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可

  在FreeBSD下直接使用crontab -e命令会调用默认的编辑器,一般都是vi,所以编辑内容时按i后再编辑,编辑完了,按ESD键退出编辑状态,再输入:wq,这样就完成了编辑,编辑成功后,不需要执行其他的命令,crontab就已经生效了,但是有些Linux系统还需要执行/etc/init.d/cronb restart命令才可以。如果在FreeBSD下不生效,那肯定是你的编辑的内容有错误,最好检查一下,实在找不出毛病,就自己重新输入一次,相信就会成功的。


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags: ,
  PHP提供两个方便我们引用数据的魔法引用函数magic_quotes_gpc和magic_quotes_runtime,这两个函数如果在php.ini设置为ON的时候,就会为我们引用的数据碰到单引号'和双引号"是自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行,可是我们在php不同的版本或者不同的服务器配置下,有的magic_quotes_gpc和magic_quotes_runtime设置为on,有的又是off,所以我们写的程序必须符合on和off两种情况。那么magic_quotes_gpc和magic_quotes_runtime两个函数有什么区别呢?看下面的说明:
引用
magic_quotes_gpc
作用范围是:WEB客户服务端;
作用时间:请求开始是,例如当脚本运行时.

引用
magic_quotes_runtime
作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;
作用时间:每次当脚本访问运行状态中产生的数据.

所以
引用
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据
magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据


例子说明:

$data1 = $_POST['aaa'];
$data2 = implode(file('1.txt'));
if(get_magic_quotes_gpc()){
   //把数据$data1直接写入数据库
}else{
   $data1 = addslashes($data1);
   //把数据$data1写入数据库
}

if(get_magic_quotes_runtime()){
   //把数据$data2直接写入数据库

 //从数据库读出的数据要经过一次stripslashes()之后输出
}else{
   $data2 = addslashes($data2);
   //把数据$data2写入数据库

 //从数据库读出的数据直接输出
}

  另外magic_quotes_runtime可以通过set_magic_quotes_runtime设定,0 for off,1 for on。
  因为PHP的变量定义时,并不需要事先声明变量,所以我们很多地方经常会需要使用isset()来判断变量是否被定义了,但是最近碰到一个问题,希望能够提醒大家正确使用isset()函数。
  问题时需要判断一个数组中,是否有aaa元素定义,我们下意识的就想到了用isset()函数来判断,代码如下:

if(isset($arrData['aaa'])){
 echo "define";
}else{
 echo "undefine";
}

  当$arrData['aaa']的值不等于NULL的时候,isset()返回true,否则返回false,这肯定不是我们想要的结果,我们想要的是不管$arrData['aaa']的值是什么,只要$arrData['aaa']存在就应该返回true,所以这里就是一个误区,很多时候因为$arrData['aaa']的值不等于NULL,所以都会返回true给我们,让我们误以为isset()返回就是我们想要的结果,判断了$arrData['aaa']数组变量是否被定义了。所以我这里提醒大家重视,对于数组元素是否定义的判断还是需要使用array_key_exists()函数。正确的判断代码如下:

if(array_key_exists('aaa',$arrData)){
 echo "define";
}else{
 echo "undefine";
}

  提醒大家多多注意不要犯错,要不然找错误很花时间啊,我都用了1天多才找到这个问题,呵呵!
  我们经常会碰到需要自动换IP的需求,比方模拟点击投票,数据采集被封IP,Alexa作弊等等,也就是需要经常换IP的,我们都可以通过PHP控制路由器来换IP,这样就不需要用按键精灵搞得那么累了。呵呵。
  有的路由器是提供通过WEB方式管理路由器设置的,中间有一个功能就是断线和重新连接,我们就利用这个功能,呵呵,下面看代码:

<?php

function url($target='')
{

       $server  = '192.168.1.1';            // IP address
       $host    = '192.168.1.1';            // Domain name
       $port    = 80;
       $referer = 'http://'.$host.$target;    // Referer
       
       $username = "admin";#ADSL的路由的用户名
     $password = "admin";#ADSL的路由的管理密码
     $authorization = base64_encode($username.":".$password);

       $File = fsockopen($server, $port, $errno, $errstr, 30);
       if ($File)
       {        
               $out = "GET $target HTTP/1.1\r\n";
               $out .= "Host: $host\r\n";
               $out .= "Referer: $referer\r\n";
               $out .= "Authorization: Basic $authorization\r\n";
               $out .= "Connection: Close\r\n\r\n";

               fputs($File, $out);

               $makeFile = $buffer = "";
               while ($buffer = fread($File,4096))
               {
                       $makeFile = $makeFile.$buffer;
               }
               fclose($File);

       }
}
?>

使用方法:url("/userRpm/StatusRpm.htm?Disconnect=断%20线");
断线后可以不连接,一般路由器会自动连接的。当然你也可以控制连接,就是把断线改成连接,不过每个路由器的连接可能会有些不同,请自行查找路由器正确的连接URL。
分页: 1/8 第一页 1 2 3 4 5 6 7 8 下页 最后页 [ 显示模式: 摘要 | 列表 ]