find命令 — 之查找指定时间内修改过的文件

find命令 -- 之查找指定时间内修改过的文件
比如我们要查找linux下指定时间内做过改动的文件,我们可以用find命令,其实find命令的功能十分强大,下面我们通过几个简单的例子来学习下find命令的简单用法:

find /opt -iname "*" -atime 1 -type f
找出 /opt 下一天前访问过的文件
选项 OPTIONS
所有的选项都总是返回真值,它们总会被执行,除非放在表达式中执行不到的地方。因此,清楚起见,最好把它们放在表达式的开头部分。

-daystart
从当日起始时开始而不是从24小时之前,计算时间(for -amin, -atime, -cmin, -ctime, -mmin, and -mtime)。

-amin n
对文件的最近一次访问是在 n 分钟之前。

-anewer file
对文件的最近一次访问比 file 修改时间要晚。如果命令行中 -follow 在 -anewer 之前,(也只有在这种情况下 -anewer会受 -follow 的影响)。

-atime n
对文件的最近一次访问是在 n*24 小时之前。

-cmin n
对文件状态的最近一次修改是在 n 分钟之前。

-cnewer file
对文件状态的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -cnewer 之前,(也只有在这种情况下-cnewer 会受 -follow 的影响)。

-ctime n
对文件状态的最近一次修改是在 n*24 小时之前。

-mmin n
对文件数据的最近一次修改是在 n 分钟之前。

-mtime n
对文件数据的最近一次修改是在 n*24 小时之前。

-mtime : 指定时间曾被改动过的文件,意思是文件內容被更改过

-ctime : 指定时间曾被更改过的文件,意思是文件权限被更改过

-atime : 指定时间曾被存取过的文件,意思是文件被读取过
1.  时间是以 24 小时为一个单位,而不是以天的
2.  2011/09/08 12:00 时间开始找一天內的,会列出 2011/09/07 12:00 ~ 2011/09/08 12:00 时间內的文件

找出 3 天"以前"被改动过的文件 (前第三天以前 → 2011/09/05 12:00 以前的文件) (> 72 小时)

  1. find /var/log/ -mtime +3 -type f -print  

找出 3 天內被改动过的文件 (2011/09/05 12:00 ~ 2011/09/08 12:00 內的文件) (0 ~ 72 小时內)

  1. find /var/log/ -mtime -3 -type f -print  

找出前第 3 天被改动过的文件 (2011/09/04 12:00 ~ 2011/09/05 12:00 內的文件) (72 ~ 96 小时)

  1. find /var/log/ -mtime 3 -type f -print  

找出第 3 天被改动过的文件 (也可以这样写)

  1. find /var/log/ -mtime +2 -mtime -4 -type f -print  
Read more...

centos kickstart

cd /root/iso/centos
mkisofs -o CentOS_6_x86_64_Kickstart.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T .
-------------------------------------------------------------------
Kickstart option to avoid "Storage Device Warning"
When I added zerombr to my kickstarts that issue went away.
I think that should do it b/c the devices will then have a structure that anaconda won't flake out on.
-------------------------------------------------------------------
PyCURL couldn't resolve "cdrom:sr0" during CentOS 6.2 kickstart installation
I have solved this issue myself, the solution is changing the repo line from
repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100
to
repo --name="CentOS"  --baseurl=file:///mnt/source --cost=100
-------------------------------------------------------------------
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard fr
network --onboot yes --device eth0 --bootproto static --noipv6
rootpw  --iscrypted $6$NJrmWL64ZRdd1QFJ$I2hxrufs.2FI9.CVGB35R0fSQAFtJp4lakIKCoTvvmjVIBmDN/tOaBOwzptldn8HBXUMv8NmytpM6WeeonwSU.
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Europe/Paris
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
zerombr
clearpart --all --drives=sda
part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1
volgroup VolGroup --pesize=4096 pv.008002
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --size=97896
logvol swap --name=lv_swap --vgname=VolGroup --size=4000
repo --name="CentOS"  --baseurl=file:///mnt/source --cost=100
reboot --eject
%post --nochroot
cp /mnt/source/6netconfig.sh /mnt/sysimage/root >> /tmp/ins.log 2>&1
chmod +x /mnt/sysimage/root/6netconfig.sh
%packages --nobase
@core
%end
-----------------------------------------------------------------
Read more...

php中字符串的详细介绍

1.字符串的定义
2.字符串变量的声明
3.转义字符
4.双引号和单引号的区别
5.heredoc的写法
6.nowdoc的写法
7.字符串长度函数          
8.查找字符位置函数
9.字符串替换函数,大小写转换,指定字符分隔,字符串的函数的比较(如strcmp()
html中的字符转实体(反之),字符串截取,数字字符串加分隔符
10.提取子字符串函数
11.分割,连接,反转函数
12.去除,增加空格函数
13.html代码/数据库安全处理有关函数
14.比较字符函数
15.字符大小转换函数         
16.字符串截取函数

             

1.字符串的定义
字符串在讲变量时候已经讲了,怎么又要讲?
答:之前,只是字符串这种变量类型
但对于其定义,性质,函数等等,没有深入的说
第2:字符串,在php中,是非常重要的一个概念

可以这么说:你在开发网站中想对字符串做某种操作
基本上你想到的字符串的处理功能,系统都已有相关函数了.

因为php自诞生之初,就是为web开发而来的.
因为网站开发中,字符串处理,是php的一大亮点

php中,1是字符串,2是数组函数,都非常多,非常好用.

什么是字符串?
答:字符串,就是一串字符
羊肉串就是一串羊肉                                                              返回目录   

2. 字符串的声明方式

 
  1 1.如何声明一个字符串变量
  2 答:
  3 双引号
  4 单引号
  5 定界符
  6 
  7 
  8 */
  9 
 10 $str1 = "hello";
 11 echo $str1;
 12 
 13 $str2 = "hello,"jack" ";//这个字符串是一个新闻标题,标题里很容易又出现双引号
 14 
 15 /*
//转义字符
16 思考: 17 用双引号,来声明字符串的时候内部不能再出现双引号 18 因为,双引号被当成了字符串的边界来对待,因此,内部出现 19 双引号,就引起了解释上的歧义.这时,可以用转字符. 20 即,用 \" 转义来表示 21 22 还有没有其他的转义字符呢? 23 想: \" 被用来当成 " 理解了 24 那么要是确实想表示,反斜\,又怎么办呢? 25 答:\\,表示反斜线\ 26 27 \' 单引号 28 \\反斜线 29 \"双引号 30 \n换行 31 \r回车 32 \t水平方向的tab 33 \v竖直方向的 34 \f换页 35 \$美金dollar标记 36 37 38 39 */ 40 41 $str2 = "hello ,\"jack\" "; 42 echo $str2; 43 44 $str3 = "hello \\ "; 45 echo $str3; 46 47 $str4 = "hello\n\rworld"; 48 echo $str4; 49 50 $str5 = "hello $str3"; 51 echo $str5; //hello hello \,即把$str3当变量解析出来了. 52 echo '<br />'; 53 $str6 = "hello \$str3";//此处 \$被转成了普通字符串$,而不再理解为变量标志   返回目录 54 echo $str6; 55 //再看单引号码 56 57 58 $str1 = 'hello<br />'; 59 echo $str1; 60 61 $str2 = 'hello \'jack\' ';//某字符串是新闻标题,标题又出现 62 //=--------------------------------------------------- 63 //单引号 64 //echo $str2; 65 // 66 ////单引号里又出现了单引号,又该怎么办呢? 67 ////答:被用来做字符串的边界了. 68 ////因此只能转义了来表示了. 69 //// \被用来转义单引号用了,那么如果我确实想表示\怎么办呢? 70 // 71 //// \\ 来表示 \ 72 // 73 // 74 $str3 ='hello \\'; 75 echo $str3; 76 77 78 /* 79 双引号和单引号的区别? 80 81 1.单双引号字符串有何区别? 82 83 //1.单引号,系统不做复杂的转义 84 //2.只转义 \' , \\ ,其他的一律原样输出. 85 //3.双引号,则转义的比较多, \n \r \t, \f \$ \\ \v 86 //4.对于变量解析的的区别: 87 //5.单引号,不对字符串$作变量名解析,而双引号要. 88 89 //---------------------------------------------------- 90 91 2. 单双引号哪个速度快些? 92 答:单引号定义的更快,因为不需要进行过多的转义和变量解析. 93 94 问:什么时间选用单/双引号呢? 95 96 答:大段文本,比如新闻标题,文本内容,自我介绍等这样大段话. 97 用'',解析快.. 98 99 但有时候,确实需要在一段字符串夹杂变量. 100 101 102 103 104 */ 105 $id = 5; 106 $sql = "select * from user id = 5"; 107 //如果此时用单引,则语句成为了 ..id = $id,sql就出错了. 108 //此时,用双引号合适 ,解析$id 语句解析 ..id = 5; 109 110 111 $age = 3; 112 $str1 = 'hello \n\r \t $age '; 113 $str2 = "hello \n\r \t $age"; 114 115 116 echo $str1,'<br />';117 echo $str2,'<br />';   返回目录 118 119 //heredoc的用法 120 //当需要写一大段文本,里面又有单引号,又有双引号,导致转义的时候,都比较麻烦,还可以用heredoc,nowdoc 两种界定字符串的方式 121 $age =23; 122 $str = <<< title 123 //我来写一行 124 //再来写第2行," '\, 125 //sdfsa, asdf \t \n 126 //hahah 127 $age 128 title; 129 echo $str; 130 131 /*** 132 heredoc的写法 133 <<< 标志符 134 中间写大段文本 135 1.标志符的名称和变量名求一样. 136 2.heredoc 的结束符,一定是独占一行,而且前面没有任何其他字符 137 138 3. heredoc对文本的处理和双引号一样,即 \r \n \t变量等都能解析出来. 139 140 4.heredoc 写大段文本挺方便,但是对内部的字符解析和双引号一样. 如果我不想这样,有没有类似heredoc写大段文本,有没有 141 这样的用法呢? 142 143 答:有 144 145 到了5.3.0之后,又新增了nowdoc方式,能达到如上效果 146 147 148 ***/ 149 echo '<hr />'; 150 151 $age =23; 152 $str = <<< 'title' 153 // 154 //我来写一行 155 //再来写第2行," '\, 156 sdfsa, asdf \t \n 157 hahah 158 $age 159 title; 160 echo $str; 161 /****** 162 nowdoc写法和heredoc写法和heredo一样,唯独在标识符两边用 163 单引号包起来,这样,在段文本的解析,就和单引号一样的效果. 164 不转义 \t \n \r 变量等 165 //====================================================   返回目录  
 

7. 字符串长度函数    

 
 1 //====================================================
 2 
 3 //字符串长度函数---------strlen()
 4 $str = 'hello';
 5 $str2 ='中国';
 6 echo 'hello有',strlen($str),'个字节';
 7 echo '<br />';
 8 echo '中国有',strlen($str2),'个字节';
 9 
10 
11 //为什么"中国"是6个字节呢?
12 //我们的.php文件,是utf-8编码
13 //
14 //中文在utf-8编码规则中,一个中文占3个字节.
15 //因此,'中国'占6个字节.而英文为Ascii码1个英文占1个字节。
16 //
17 //在ANSI中,即GBK 中一个中文占2个字节。
18 //
19 //
20 //
21 //要知道,编码都是有规律的,
22 //utf-8有utf-8的规律,你告诉mb_strlen,用utf8规则来判断字符串
23 //
24 //判断出是4个字符
25 //
26 //总结:
27 //strlen 是计算字符串“字节”长度
28 //而mb_strlen 是计算出字符串的”字符“个数
29 
30 $str = '中华民国';
31 echo '字节长度是',strlen($str),'<br />';//中文在utf-8编码规则中,一个中文占3个字节
32 echo '字符长度是',mb_strlen($str,'utf-8'),'<br />';                            返回目录  
 

8. 查找字符串位置函数--------------strpos()

strpos($str,search,[int]):查找search在$str 中的第一次位置从int开始;
stripos($str,search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感
strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int
 
  1 //查找字符串位置函数--------------strpos()
  2 
  3 //查找字符串中子字符串的位置
  4 $str = 'how are you! fine thank fine you ,may be you are right,256, I dont think so let me see I can not fine';
  5 //
  6 //经理说:你能否找找,这段字符串里,有没有“fine”
  7 
  8 //int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
  9 //其中mixed 是一种混合类型
 10 
 11 //第三个参数的讨论offset
 12 //第三个可选参数,offset的作用,就体现出来了
 13 
 14 //offset的意思是---偏移量  就是把光标先偏移一段距离,再
 15 
 16 
 17 //
 18 echo strpos($str,'fine',18);  //13,经过了13字节后,找到了fine 
 19 var_dump(strpos($str,256)); //没找到,false
 20 echo '<br />';
 21 var_dump(strpos($str,97));//97找到了,返回值是4
 22 /////**
 23 //在计算机里,ascii字符集中
 24 //65 ---->  90  A-Z
 25 //97 ---->  122 a_z
 26 //
 27 //当你第2个参数,写的是整型时,则把理解为是acsii字符的编码
 28 //
 29 //所以 int 97 ===‘a’
 30 //
 31 //不熟悉ascii的,百度‘ascii’码表
 32 //
 33 
 34 
 35 //1.写一个函数,判断指定的父串中有没有子串
 36 
 37 
 38 function findsub($str,$find){
 39 
 40 $str=strpos($str,$find);
 41 if($str){
 42     echo '父串中有子串';
 43 }else{
 44     echo '父串中没有子串';
 45 }
 46 }
 47 $str1 =  'how are you! fine thank fine you ,may be you are right,256, I dont think so let me see I can not fine';
 48 $str2 = 'how';
 49 findsub($str1,$str2);
 50 
 51 
 52 //上面这个判断出问题了
 53 //因为strpos 返回了0,而0用if判断时,当成false处理
 54 //
 55 //这里要用到===这个判定符。
 56 
 57 function findsub1($str,$find){
 58 
 59 $str=strpos($str,$find);
 60 if($str === false){
 61     echo '父串中没有子串';
 62 }else{
 63     echo '父串中有子串';
 64 }
 65 }
 66 $str1 =  'how are you! fine thank fine you ,may be you are right,256, I dont think so let me see I can not fine';
 67 $str2 = 'how';
 68 findsub1($str1,$str2);
 69 
 70 //用for循环或者while 循环计算父串中,子串中出现的次数?
 71 
 72 //函数名:subnum
 73 //参数:string $str待查父串,
 74 //string $sub 子串
 75 //
 76 //return int 即子串的个数
 77 //
 78 //思路:
 79 //先从头查找子串,找到后,则偏移过去子串,继续查找,直到查不到
 80 
 81 
 82 //
 83 function subnum($str,$sub){
 84     $sublen = strlen($sub);
 85     $strlen = strlen($str);
 86 
 87     if($sublen > $strlen){
 88         return 0;
 89         //如果子串比父串长,没必要找了
 90     }
 91 
 92     for($offset=0,$num=0;($offset=strpos($str,$sub,$offset))!==false;){
 93         $num+=1;
 94         $offset+=$sublen;
 95     }
 96     return $num;
 97 }
 98 
 99 $x =  'how are you! fine thank fine you ,may be you fine are right,256, I dont think so let me see I can not fine';
100 
101 $y = 'fine';
102 
103 //echo '在父串中找到了',subnum($x,$y),'个子串fine';
104 //
105 //
106 //echo '我也找到',substr_count($x,$y),'个fine';
107 
108 //这里为什么让大家重视字符串,php的字符串太强大了
109 //你要是不了解,可能会多花很多时间到来php中已经存在的函数。
110 
111 //
112 //$x =  'how are you! fine thank fine you ,may be you fine are right,256, I dont think so let me see I can not fine';
113 //
114 //$y = 'fine';
115 //
116 //var_dump(stripos($x,$y));  //返回字符串在另一字符串中第一次出现的位置,该函数不区分大小写。
117 //var_dump(strrpos($x,$y,0)); //返回$y字符串在$x符串中最后一次出现的位置,该函数区分大小写,从位置0开始,
118 ////注意位置的下标是从0开始的。
119 //----------------------------------------------------              返回目录  
 

9.字符串替换函数,大小写转换,指定字符分隔     
html中的字符转实体(反之),字符串截取,数字字符串加分隔,字符串的函数的比较(如strcmp()

str_replace(search,replace,$str):从$str中查找 search用replace来替换
str_irreplace(search,replace,$str):
strtr($str,search,replace):这个函数中replace不能为"";
substr_replace($Str,$rep,$start[,length])$str原始字符串,$rep替换后的新
字符串,$start起始位置,$length替换的长度,该项可选
 
  1 //3.字符串替换函数--------------str_replace()
  2 
  3 //mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
  4 //str_replace 字符串替换函数
  5 //str:string 字符串
  6 //replace: 替换
  7 //准备,把hi换成hello
  8 //$count表示替换的次数。
  9 $str = 'hi,this is lily history';
 10 
 11 $newstr = str_replace('hi','hello',$str,$num);
 12 echo $str,'<br />',$newstr;
 13 echo '<br />';
 14 //
 15 ////能不能帮我统计一下替换的次数.
 16 //echo '总共替换了',$num,'次';
 17 
 18 //再次要求,把hi换成hello,把li换成ul
 19 //可以用数组,指定多种替换
 20 $search = array('hi','li');
 21 $replace = array('hello','ul');
 22 
 23 $newstr = str_replace($search,$replace,$str);
 24 echo '新替换的后为:',$newstr,'<br />';
 25 ////
 26 //hi单词--->hello单词
 27 //
 28 //但this单词中的一部都被替换了,不想被替换,该怎么办?
 29 //
 30 //能不能,是单词的一部就是替换?
 31 //
 32 //答:用正则表达式,现在还做不到.
 33 //
 34 //突发奇想:
 35 //hi-->hello
 36 //hello ---> hi
 37 
 38 
 39 $str = 'hi lily, hello jim';
 40 
 41 $newstr = str_replace(array('hi','hello'),array('hello','hi'),$str);
 42 echo $newstr;//我们想要的是 hello lily ,hi jim ,但是实际为:hi lily, hi jim
 43 
 44 
 45 
 46 //分析:
 47 //string strtr ( string $str , string $from , string $to )
 48 //该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。 
 49 //
 50 //碰到这种情况,有没有更好的函数来代替呢?
 51 //答:用strtr以单个字符对应来替换的.比如:
 52 //strstr($str,'hi','ab')  则执行 h被i替换
 53 //然后 i 被替换成b 
 54 //
 55 //还可以换一种写法:
 56 
 57 $str = '你好,。12345';
 58 strtr($str,array('1'=>'1',2=>'2'));----------------- strtr()
 59 
 60 $str = '你好,。12345';
 61 echo strtr($str,array('1'=>'1',2=>'2'));
 62 
 63 //全半角转换,用strt非常方便
 64 //ecshop里面就用到。
 65 //在 includes --->  lib_base.php---744行里面
 66 //
 67 //  strtr---->别名strchr
 68 //----------------------------------------------------
 69 
 70 //截取子字符串 ------substr()--------strstr()-------strrchr()
 71 //-------explode()------implode()------chunk_split()-----htmlspecialchars
 72 //-------htmlspecialchars_decode()------strtolower($str)----strtoupper($str)
 73 //substr
 74 
 75 //string substr ( string $string , int $start [, int $length ] )
 76 //$string:待截取的长字符串
 77 //$start:截取开始的位置
 78 //$length:正数时代表截取的长度。负数时,代表截取结束的位置
 79 //
 80 $str ='abcdeff';
 81 echo substr($str,3),'<br />';
 82 
 83 //1.当第3个参数不指定时,截取到字符串的‘结尾’
 84 //
 85 //经理说:把字符串末尾的3个字符串截取出来。
 86 //
 87 echo substr($str,-3);//办法2:第2个参数为负数,表示从右开始截取
 88 echo substr($str,(strlen($str)-3));  办法1:总长度减去3,也能截取到结尾的三个字符.
 89 //
 90 //2. 除了前3个和结尾3个外,截取中间的部分字符串.
 91 //
 92 //分析:start应该是3
 93 //
 94 //length,如果代表长度,多长呢?不一定,因为字符串长度不好算
 95 //
 96 //这时,可以把length写成负数
 97 
 98 //----------------------------------------------------
 99 //如果用substr来截中文呢?
100 
101 //substr是按字节来操作的,不考虑什么编码
102 $str = '中国民国'; //我的文件utf-8,
103 echo substr($str,0,3);----------------------------substr()
104 
105 //----------------------------------------------------
106 //如果用substr来截中英混合呢?
107 
108 $str = 'lily你的代码report给我,中午我们有个meeting ,一会儿带你吃KFG';
109 echo substr($str,0,6),'ab';//按字节截,'lily你'是7个字节才完成'你'的3个字节,被截了2个,出了问题
110 //----------------------------------------------------
111 //strstr($str,$needle);
112 
113 //作用:是在$str中找到指定的$needle,而且是$needle第一次出现的位置,返回该位置直到字符串结尾的这一部分
114 
115 //能否把第一次找到的$needle的位置之前的字符串截取出来呢?
116 //答: 能,从php5.3.0版本开始,strstr函数多了第3个可选参数
117 
118 $str = 'asdf.def.jpg.exe';
119 echo strstr($str,'.'),'<br />'; // .def.jpg.exe
120 echo strstr($str,'.',true); ---------------------strstr()
121 
122 //能否先把$needle最后一次出现的位置找出来
123 //从该位置,一直截到结尾
124 
125 echo strrchr($str,'.'),'<br />';
126 
127 //面试时,让你计算一个文件的后缀?
128 $file = 'new.txt';
129 echo strrchr($str,);----------------------strrchr()
130 
131 //php中,字符串函数和数组最多
132 //字符串和数组,有2个函数,是他们的桥梁,非常频繁的使用.
133 //
134 //就是implode ,explode
135 //
136 //有的网站,写文章,让我们填写标签,"多个标签用逗号隔开"
137 //
138 //$str = 'abc,中国,美国,日本';
139 //
140 ////explode 是根据指定的分割符,把字符串拆成数组
141 $arr = explode(',',$str); --------------------------explode()
142 print_r($arr);
143 
144 而implode是根据指定的连接符,把组再拼接成字符串
145 $arr = implode('~',$arr);
146 var_dump($arr);
147 
148 //你可以中只传一个数组,不指定连接符
149 //这样,将把数组单元组合在一起中间没有连接符.
150 //
151 $arr = implode($arr);-----------------implode()
152 var_dump($arr);
153 
154 $str = '12345678';
155 echo chunk_split($str,3,',');  //每隔三个字符加一个逗号.------------chunk_split();
156 
157 //如果不加逗号,则默认为换行.
158 echo '<hr />';
159 echo chunk_split($str,3);
160 ====================================================
161 字符转义函数,非常重要.
162 
163 $str = "abc ', hello";
164 echo $str,'<br />';
165 $str = addslashes($str); //单引号被转义成都市\'--------------addslashes()
166 echo $str;
167 
168 //现在我们还没有学习mysql,你还意识不到一个单引
169 //号的破坏作用.但要知道,单双引号如果不小心,数据库
170 //是会被注入的
171 //
172 //应该把客户输入进来的数据,进行转义,防止单双引号带来的破坏
173 //能不能把戏\',转回
174 答:175 echo '<hr />';
176 $str = stripslashes($str);------------------stripslashes();
177 echo $str;
178 
179 htmlspecialchars----------将字符中一些字符转换为HTML实体
180 htmlspecialchars_decode--------htmlspecialchars()函数的反函数,将HTML实体转换为字符
181 
182 htmlentitles----------将字符串中所有可转换字符转换为HTML实体
183 
184 $str = '<ab>';
185 $str =  htmlspecialchars($str);
186 $str= htmlspecialchars_decode($str);
187 echo $str;
188 
189 int strcmp ( string $str1 , string $str2 )-----------------strcmp()
190 //如果 str1 小于 str2,返回负数;如果 str1 大于 str2,返回正数;二者相等则返回 0。 
191 
192 if(strcmp('a','b')>0){--------------------strcmp()                             返回目录  
193 echo 'a&gt;b'; 194 }else if(strcmp('a','b')<0){ 195 echo 'a&lt;b; 196 }else{ 197 echo '相等'; 198 } 199 200 //大小写转换 201 202 $str = 'heLLO,THIS iS lILY,BUT,I LOVE hANMEImei'; 203 204 echo strtolower($str),'<br />';//-----------------strtolower() 205 206 echo strtoupper($str),'<br />';//-----------------strtolower() 207 208 //把$str字符串中的第一单词即hello首字母大写. 209 210 echo ucfirst($str),'<br />';//-----------------strtolower() 211 //====================================================   返回目录  
 

有关字符串的字面试题:

 
//有关字符串的面试题
$str = 'abcdef';
echo substr($str,0,1);
echo $str[0];
//字符串还有一个类数组特性,即可以用索引、下标把指定的字符取出来
//
//如何实现字符串反转 
$str  = 'abcde';
function rev($str){
   $len = -strlen($str); 
    for($new = '',$start=-1;$start>=$len; $start--){
        $new.=substr($str,$start,1);
       
    }
    return $new;
}
echo rev($str),'<br />';
//echo strrev($str);---------------字符串反转函数
//用5种以上方式获取文件的后缀
//例:a.jpeg.exe,获得exe,或者.exe
//----------------------------------------------------
//方法1
$file = 'a.jpeg';
function getext($file){
    return strrchr($file,'.');
}
echo getext($file);
//找最后一个   .出现的位置,再substr截取。
//strrpos是找子字符最后一次出现的位置
//----------------------------------------------------
$file = 'a.jpeg';
function getext2(){
return substr($file,strrpos($file,'.'));
}
echo strrpos($file,'.');
echo strrev($file);
exe.gepj.a
exe.gepj.a
//把字符串反过来,然后再找第一个点出现的位置
//然后再反一次
$file = 'a.jpeg.doc.dsf';
----------------------------------------------------
function getext3($file){
    $file = strrev($file);  //cod.gepj.a
    $find = strpos($file,'.');// 3
    $file = substr($file,0,$find);
    $file = strrev($file);
    return $file;
}
echo getext3($file);
//
//用系统函数pathinfo  
$file  = 'a.jpeg';
//$arr = pathinfo($file);
//----------------------------------------------------
function getext4($file){
    $arr = pathinfo($file);
    return $arr['extension'];
    retrun pathinfo($file,PATHINFO_EXTENSION);  //直接返回jpeg
}
echo getext4($file);
//Array
//(
//    [dirname] => . ----------------代表在当前目录下
//    [basename] => a.jpeg-----------基本名称
//    [extension] => jpeg------------文件扩展名
//    [filename] => a----------------文件名
//)
//如果学习了数组,还可以有多种做法
//----------------------------------------------------
//将1234567890转换成1,234,567,890这种方式
$num = '1234567';
function t1($num){
  $arr = str_split(strrev($num),3);
  return strrev(implode(',',$arr));
}
print_r(t1($num));  //Array ( [0] => 123 [1] => 456 [2] => 7 ) 
//---------------------------------------------------
$num = '1234567';
function t2($num){
$num =strrev($num);
return ltrim(strrev(chunk_split($num,3,',')),',');---------ltrim() 函数从字符串左侧删除空格或其他预定义字符。
}
print_r(t2($num));
//----------------------------------------------------
$num = '1234567';
echo number_format($num);-------------number_format()系统自带的数字分割函数,以千为单位分割。
//====================================================                               返回目录  
 

分割,连接,反转函数

str_split($str,len):把$str按len长度进行分割返回数组
split(search,$str[,int]): 把$str按search字符进行分割返回数组int是分割几次,后面的将不分割
explode(search,$str[,int])
implode —— 将数组用特定的分割符转变为字符串
 
 1 //字符串和数组,有2个函数,是他们的桥梁,非常频繁的使用.
 2 //
 3 //就是implode ,explode
 4 //
 5 //有的网站,写文章,让我们填写标签,"多个标签用逗号隔开"
 6 //
 7 //$str = 'abc,中国,美国,日本';
 8 //
 9 ////explode 是根据指定的分割符,把字符串拆成数组
10 $arr = explode(',',$str); --------------------------explode()
11 print_r($arr);
12 
13 而implode是根据指定的连接符,把组再拼接成字符串
14 $arr = implode('~',$arr);
15 var_dump($arr);
16 
17 //你可以中只传一个数组,不指定连接符
18 //这样,将把数组单元组合在一起中间没有连接符.
19 
20 //如何实现字符串反转 
21 
22 $str  = 'abcde';
23 function rev($str){
24    $len = -strlen($str); 
25     for($new = '',$start=-1;$start>=$len; $start--){
26         $new.=substr($str,$start,1);
27        
28     }
29     return $new;
30 }
31 
32 echo rev($str),'<br />';
33 //echo strrev($str);---------------字符串反转函数
34 //------------------------------------------
35 
36 $arr = implode($arr);-----------------implode()
37 var_dump($arr);
38 
39 $str = '12345678';
40 echo chunk_split($str,3,',');  //每隔三个字符加一个逗号.------------chunk_split();
41 
42 //如果不加逗号,则默认为换行.
43 echo '<hr />';
44 echo chunk_split($str,3);
45 ====================================================                          返回目录 
 

13.html代码/数据库安全处理有关函数

addslashes ( string $str )
stripslashes ( string $str )
get_magic_quotes_gpc()
htmlspecialchars ——将字符串中一些字符转换为HTML实体
htmlspecialchars_decode —— htmlspecialchars()函数的反函数,将HTML实体转换为字符
html_entity_decode —— htmlentities ()函数的反函数,将HTML实体转换为字符
htmlentities ——将字符串中所有可转换字符转换为HTML实体
 
 1 字符转义函数,非常重要.
 2 
 3 $str = "abc ', hello";
 4 echo $str,'<br />';
 5 $str = addslashes($str); //单引号被转义成都市\'--------------addslashes()
 6 echo $str;
 7 
 8 //现在我们还没有学习mysql,你还意识不到一个单引
 9 //号的破坏作用.但要知道,单双引号如果不小心,数据库
10 //是会被注入的
11 //
12 //应该把客户输入进来的数据,进行转义,防止单双引号带来的破坏
13 //能不能把戏\',转回
14 答:15 echo '<hr />';
16 $str = stripslashes($str);------------------stripslashes();
17 echo $str;
18 
19 htmlspecialchars----------将字符中一些字符转换为HTML实体
20 htmlspecialchars_decode--------htmlspecialchars()函数的反函数,将HTML实体转换为字符
21 
22 htmlentitles----------将字符串中所有可转换字符转换为HTML实体
23 
24 $str = '<ab>';
25 $str =  htmlspecialchars($str);
26 $str= htmlspecialchars_decode($str);
27 echo $str;
28 
29 int strcmp ( string $str1 , string $str2 )-----------------strcmp()
30 //如果 str1 小于 str2,返回负数;如果 str1 大于 str2,返回正数;二者相等则返回 0。 
31 
32 if(strcmp('a','b')>0){--------------------strcmp()
33     echo 'a&gt;b';
34 }else if(strcmp('a','b')<0){
35     echo 'a&lt;b;
36 }else{
37 echo '相等';
38 }
39 
40 //大小写转换
41 
42 $str = 'heLLO,THIS iS lILY,BUT,I LOVE hANMEImei';
43 
44 echo strtolower($str),'<br />';//-----------------strtolower()
45 
46 echo strtoupper($str),'<br />';//-----------------strtolower()
47 
48 //把$str字符串中的第一单词即hello首字母大写.
49 
50 echo ucfirst($str),'<br />';//-----------------strtolower()
51 //====================================================                      返回目录 
 

大小写转换函数

 
 1 //大小写转换
 2 
 3 $str = 'heLLO,THIS iS lILY,BUT,I LOVE hANMEImei';
 4 
 5 echo strtolower($str),'<br />';//-----------------strtolower()
 6 
 7 echo strtoupper($str),'<br />';//-----------------strtolower()
 8 
 9 //把$str字符串中的第一单词即hello首字母大写.
10 
11 echo ucfirst($str),'<br />';//-----------------strtolower()                返回目录 
 
  1. 字符串截取函数
substr($str,int start[,int length]):从$str中strat位置开始提取[length长度的字符串]。
strstr($str1,$str2): 从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回FALSE。
stristr() 功能同strstr,只是不区分大小写。
strrchr() 从最后一次搜索到的字符处返回;
 
 1 /string substr ( string $string , int $start [, int $length ] )
 2 //$string:待截取的长字符串
 3 //$start:截取开始的位置
 4 //$length:正数时代表截取的长度。负数时,代表截取结束的位置
 5 //
 6 $str ='abcdeff';
 7 echo substr($str,3),'<br />';
 8 
 9 //1.当第3个参数不指定时,截取到字符串的‘结尾’
10 //
11 //经理说:把字符串末尾的3个字符串截取出来。
12 //
13 echo substr($str,-3);//办法2:第2个参数为负数,表示从右开始截取
14 echo substr($str,(strlen($str)-3));  办法1:总长度减去3,也能截取到结尾的三个字符.
15 //
16 //2. 除了前3个和结尾3个外,截取中间的部分字符串.
17 //
18 //分析:start应该是3
19 //
20 //length,如果代表长度,多长呢?不一定,因为字符串长度不好算
21 //
22 //这时,可以把length写成负数
23 
24 //----------------------------------------------------
25 //如果用substr来截中文呢?
26 
27 //substr是按字节来操作的,不考虑什么编码
28 $str = '中国民国'; //我的文件utf-8,
29 echo substr($str,0,3);----------------------------substr()
30 
31 //----------------------------------------------------
32 //如果用substr来截中英混合呢?
33 
34 $str = 'lily你的代码report给我,中午我们有个meeting ,一会儿带你吃KFG';
35 echo substr($str,0,6),'ab';//按字节截,'lily你'是7个字节才完成'你'的3个字节,被截了2个,出了问题
36 //----------------------------------------------------
37 //strstr($str,$needle);
38 
39 //作用:是在$str中找到指定的$needle,而且是$needle第一次出现的位置,返回该位置直到字符串结尾的这一部分
40 
41 //能否把第一次找到的$needle的位置之前的字符串截取出来呢?
42 //答: 能,从php5.3.0版本开始,strstr函数多了第3个可选参数
43 
44 $str = 'asdf.def.jpg.exe';
45 echo strstr($str,'.'),'<br />'; // .def.jpg.exe
46 echo strstr($str,'.',true); ---------------------strstr()
47 
48 //能否先把$needle最后一次出现的位置找出来
49 //从该位置,一直截到结尾
50 
51 echo strrchr($str,'.'),'<br />';
52 
53 //面试时,让你计算一个文件的后缀?
54 $file = 'new.txt';
55 echo strrchr($str,);----------------------strrchr()                          返回目录
 

空白处理函数

string trim ( string $str [, string $charlist ] )
string ltrim ( string $str [, string $charlist ] )
string rtrim ( string $str [, string $charlist ] )
chunk_split($str,2);向$str字符里面按2个字符就加入一个空格;
str_pad —— 对字符串进行两侧的补白                                                                     返回目录

 相关视频:

1. 燕十八-PHP公益培训-YY直播-028-字符串定义及单双引号区别

2. 燕十八-PHP公益培训-YY直播-029-字符串定界符的用法

 3. 燕十八-PHP公益培训-YY直播-030-字符串系统函数讲解

5.燕十八-PHP公益培训-YY直播-032-字符串函数详解(3)

6.燕十八-PHP公益培训-YY直播-033-字符串面试题讲解

/** 燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it **/
Read more...

Sed在匹配行前后加入一行

a 追加内容 sed ‘/匹配词/a\要加入的内容’ example.file(将内容追加到匹配的目标行的下一行位置)
i 插入内容 sed ‘/匹配词/i\要加入的内容’ example.file 将内容插入到匹配的行目标的上一行位置)
示例:
#我要把文件的包含“chengyongxu.com”这个关键词的行前或行后加入一行,内容为“allow chengyongxu.cn”

1#行前加
2sed -i '/allow chengyongxu.com/i\allow chengyongxu.cn' the.conf.file
3#行前后
4sed -i '/allow chengyongxu.com/a\allow chengyongxu.cn' the.conf.file
Read more...

CentOS中设置系统级代理

YUM代理设置
 
编辑/etc/yum.conf,在最后加入
# Proxy
proxy=http://username:password@proxy_ip:port/
 
也可以使用proxy_username和proxy_password来配置代理的用户名和密码
 
这样的配置完成后,所有的用户在使用yum时,都会使用代理,可以说是全局代理。
 
如果需要为单独的用户配置代理,可以在用户的~/.bash_profile中设置。
 
Wget的代理设置
 
编辑/etc/wgetrc,在最后加入
# Proxy
http_proxy=http://username:password@proxy_ip:port/
ftp_proxy=http://username:password@proxy_ip:port/
 
系统全局代理
 
如果需要为某个用户设置一个系统级的代理,可以在~/.bash_profile中设置:
 
http_proxy="http://username:password@proxy_ip:port"
export_http_proxy
 
上面的设置只对某个用户生效,如果要对所有系统用户生效,写在/etc/profile中就可以了。
Read more...

centos ssh puttygen

我也碰到你这样的情况,我开始是成成pub key文件以后再记事本打开,复制的,不能登陆。不过我后来直接从puttygen的界面上的公匙框里面复制到authorized_keys文件里面,就可以登陆了。

Read more...

sort very large file

LC_ALL=C sort -u --buffer-size=2G --temporary-directory=/root/Desktop/tmp --output=joined_sorted.txt joined.txt 
uniq joined_sorted.txt joined_sorted_uniqed.txt
split bigFileName -l 按行分割
wc -l joined.txt 
split -l 10000000 joined.txt joined_split_
for f in joined_split_*; do
  sort -u "$f" > "$f"_sorted
done
sort -u -m joined_split_*_sorted > final.out
Read more...

Symantec Endpoint 设置

安装

因为我们要自己用 不连接到管理端  所以选择第一个 非受管理端

因为不安装 应用程序与设备控制   所以选择 自定义

应用程序与设备控制不建议安装 

应用程序与设备控制虽然分类在 主动型威胁防护里 但是选项 是在客户端管理 里面而不是 主动型威胁防护 里面在有管理端统一部署的情况下 这个是不能禁止启动的 也就是 启用面的复选框的小勾默认选择并且是灰色的

去掉这个 以后再更新 


如果你觉得选择了这两项 不利于自己的隐私 那还是去掉为妙 总之随个人喜好 

 

设置


如果想调度活动的扫描 这里就不用管 如果不像让它调度扫描 这里就关闭扫描



病毒和间谍软件防护设置



这个按照自己的喜好选择吧 点击小分类 可以分别查看和设置每个分类的处理方式

按自己喜好设置 不想提示的  去掉显示自动防护结果对话框前面的勾

重启时间改为三分钟 这两个扫描还是不要选择 要不然电脑不好的话 清理病毒的时候会卡  更新后也会卡



敏感级别 随个人喜好 想查杀高的 就选择9 最后一个 不选更安全 选择亦无妨

这里可以调节处理方式 至于怎样处理 看个人喜好选择


电子邮件 默认即可

 

 

 

主动型威胁防御设置



最后这两个 选择忽略 要不然会被烦死的


网络威胁防护设置

这里可以查看 更改 应用程序设置  单击右键  可以对于已经允许联网的程序禁止 或 对于已经禁止的程序联网 允许联网

这里可以查看正在联网的程序  右键单击 可以选择允许 禁止 或 终止 正在联网的程序
同样 也可以设置显示的方式 比如大图标 小图标 详细信息等等

防火墙规则详细设置请参阅: http://bbs.kafan.cn/thread-1286246-1-1.html以及: http://bbs.kafan.cn/thread-1396584-1-1.html

虽然最下面三个都选上 安全性会好一些 但是 选择 启用隐藏模式网页浏览 后 会影响一些网络服务 此项不选并不会减少多少安全性 


两个共享 一个是自己可以访问别人的  一个是别人可以访问自己的 建议选择第一个 去掉第二个的勾

如果不想显示攻击提示 或者觉得攻击提示很烦人的 可以去掉这个
建议先设置防火墙 设置完了之后 立即点更新(LiveUpdate)这样可以一边更新 一边设置 两不误


例外

这里可以设置扫描排除、监控排除、SONAR排除等等



客户端管理设置


建议选择禁止并记录 这样可以查看谁想结束SEP 如果你觉得提示很烦 可以改成 仅记录

建议选择连续 这样就可以持续自动更新了

如果你觉得这样泄漏自己的隐私 那就去掉 不要选择 不过这样就没云了

 

 

 

 

 

Read more...
Subscribe to this RSS feed
( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/category.php on line 191
Call Stack
#TimeMemoryFunctionLocation
10.0007413544{main}( ).../index.php:0
20.08184263832Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.08184263832Joomla\CMS\Application\SiteApplication->doExecute( ).../CMSApplication.php:196
40.303111453784Joomla\CMS\Application\SiteApplication->dispatch( ).../SiteApplication.php:233
50.303711478032Joomla\CMS\Component\ComponentHelper::renderComponent( ).../SiteApplication.php:194
60.304411533360Joomla\CMS\Component\ComponentHelper::executeComponent( ).../ComponentHelper.php:377
70.304711560760require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ).../ComponentHelper.php:402
80.313111895976K2ControllerItemlist->execute( ).../k2.php:64
90.313111895976K2ControllerItemlist->display( ).../BaseController.php:710
100.327312802920K2ControllerItemlist->display( ).../itemlist.php:49
110.327312802920K2ControllerItemlist->display( ).../controller.php:19
120.331313017184Joomla\CMS\Cache\Controller\ViewController->get( ).../BaseController.php:663
130.333213037872K2ViewItemlist->display( ).../ViewController.php:102
140.504916362528K2ViewItemlist->display( ).../view.html.php:1407
150.504916362528K2ViewItemlist->loadTemplate( ).../HtmlView.php:230
160.506216431000include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/category.php' ).../HtmlView.php:701