分享

php入门(15)

 php入门 2015-11-26

字符串比较和查找——数据处理利器

1.字符串比较

在PHP中,可以用==(双等号)或者 ===(三等号)来比较字符串,两者的区别是双等号不比较类型,三等号会比较类型,它不转换类型;用双等号进行比较时,如果等号左右两边有数字类型的值,刚会把另一个值转化为数字,然后进行比较,这样的话,如果是纯字符串或者NULL时,会转化为0进行比较,同样,大小于号也和等号一样,比较时可能出现不正确的结果。

所以,比较字符串可以用PHP的自带函数strcmp和strcasecmp,其中strcasecmp是strcmp的变种,它会先把字符串转化为小写再进行比较,如下代码:

1
2
3
4
5
6
7
8
9
10
11
var_dump(0 == 'Test'); 
var_dump(0 == ''); 
var_dump(5 > 'T'); 
var_dump(strcmp(5, 'T')); 
/* 
结果为(第1~3结果是不对的,只有第4个是对的): 
bool(true) 
bool(true) 
bool(true) 
int(-1)  
*/

2.字符串处理

(1).子串,代码如下:

$sub = substr(string, start[, length]);

(2).子串替换,代码如下:

$newstring = substr_replace(string, new, start[, length]); 

用这个函数可以实现字符串的插入,删除操作,这个函数的start和length可以为负数,分别表示从后开始计算以及保留最后几位不替换。

(3).字符串反序,代码如下:

$newstring = strrev(string);

(4).重复字符串,代码如下:

$newstring = str_repeat(string, count);

返回一个重复count次string的新字符串。

(5).填充字符串,代码如下:

$newstring = str_pad(to_pad, length[, with[, type]]);

其中type有:STR_PAD_RIGHT(默认)、STR_PAD_LEFT和STR_PAD_BOTH三种;with默认为空格,函数表示把to_pad字符串用with填充为一个长度为length的字符串,如下代码:

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
28
29
30
31
32
33
34
35
36
37
38
(1).子串,代码如下:
$sub substr(string, start[, length]);
(2).子串替换,代码如下:
$newstring = substr_replace(string, new, start[, length]); 
用这个函数可以实现字符串的插入,删除操作,这个函数的start和length可以为负数,分别表示从后开始计算以及保留最后几位不替换。
(3).字符串反序,代码如下:
$newstring strrev(string);
(4).重复字符串,代码如下:
$newstring str_repeat(string, count);
返回一个重复count次string的新字符串。
(5).填充字符串,代码如下:
$newstring str_pad(to_pad, length[, with[, type]]);
其中type有:STR_PAD_RIGHT(默认)、STR_PAD_LEFT和STR_PAD_BOTH三种;with默认为空格,函数表示把to_pad字符串用with填充为一个长度为length的字符串,如下代码:
// 子串 
var_dump(substr('1234567890', 8));       // 90 
var_dump(substr('1234567890', 0, 2));    // 12 
// 反方向子串 
var_dump(substr('1234567890', -8));      // 34567890 
var_dump(substr('1234567890', -8, -2));  // 345678 
var_dump(substr('1234567890', -8, 2));   // 34 
// 插入 
var_dump(substr_replace('1234567890''a', 0, 0));   // a1234567890 
// 删除 
var_dump(substr_replace('1234567890''', 8));       // 12345678 
// 反方向删除 
var_dump(substr_replace('1234567890''', -2, -1));  // 123456780 
// 替换 
var_dump(substr_replace('1234567890''a', 0, 1));   // a234567890 
// 反方向替换 
var_dump(substr_replace('1234567890''a', -2, -1)); // 12345678a0 
// 字符串反转 
var_dump(strrev('1234567890'));     // 0987654321 
// 重复字符串 
var_dump(str_repeat('12', 3));      // 121212 
// 填充字符串 
var_dump(str_pad('a', 10, '12'));               // a121212121 
var_dump(str_pad('a', 10, '12', STR_PAD_LEFT)); // 121212121a 
var_dump(str_pad('a', 10, '12', STR_PAD_BOTH)); // 1212a12121
php字符串函数可谓是博大精深,你能从一堆数据中通过字符串函数快速找出你所需要的重要数据,没有找不到的,除非你不会查手册!!!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多