用最简单的实现最强的......

导航

php字符串操作相关(2)

字符串操作相关函数:

1.获取字符串长度:
int strlen ( string string )

<?php
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7
?>

strlen()函数是二进制安全的,这意味着所有字符串里的所有字符都会忽略它们的值被计数.但是strlen将中日等汉字以及全角字符都当作两个或四个长度计算,所以在计算这些字符时通常采用另外的函数,如:iconv_strlen(),mb_strlen()

$len = iconv_strlen($str, "GBK");
$len = mb_strlen($str, "GBK");

2.字符串比较
一般用的字符串用!=,==就可以了,可是如果两边类型不一样的话,那么php会自动进行类型转换(例如整数和字符比较,字符会转成整数),这时可以用===,和!==进行比较,===或!==会比较两端的数据类型,只有类型和数值完全相等才为真。
<?php
if(“abc”==”abc”){
    echo “abc equal abc”;             //相等,输出abc equal abc
}
if(123 == “123”){
    echo “123 equal string \”123\” ”; 
   
//相等,输出123 equal….”123”进行了类型转换,实际上进行的是if(123==123)}
if(123===”123”){
    echo “123 equal string \”123\” ”;
    //不会输出,两边的数据类型不一样,一个是整型,一个是字符型
}
?>
我们还可以使用php自带的字符比较函数,如:strcmp(),strcasecmp(),strncasecmp(), strncmp()

int strcmp ( string str1, string str2 )(区分大小写比较)

Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.
如果str1小于str2的话返回<0的数值,如果str1大过str2的话返回>0的数值,如果相等的话返回0,而且strcmp()区分大小写.
//从第一位开始比较(大些字母的值要小于小写字母的值),直到不相同的字母为止
echo strcmp("abcdd", "aBcde"); // 返回 1 (>0), 比较的是 "b"和"B"

int strncmp ( string str1, string str2, int len )(类似strcmp(),第三个参数可以指定比较的长度)
echo strncmp("sample","sam",3);     //输出0;


int strcasecmp ( string str1, string str2 )(不区分大小写比较)

int strncasecmp ( string str1, string str2, int len )(类似strcasecmp(),可以指定比较的长度)

int strnatcmp ( string str1, string str2 )
int strnatcasecmp ( string str1, string str2 )
这两个函数有点特别,这两个函数都实现了类似人类世界的字母数字排序算法,实现了”自然排序”,详细用法参见例子:

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Standard string comparison\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nNatural order string comparison\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

output:

Standard string comparison
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order string comparison
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

posted on 2009-04-12 19:12  最简单的就是最好的  阅读(2471)  评论(0编辑  收藏  举报