最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • php字符串与字符串操作教程详解

    php字符串是php中一种数据类型了,字符串在程序开发中占着很重的地位,下面我来给php入门者介绍php字符串的一些基于知识与使用说明吧。

    输出字符串

    在PHP中,有四种方法输出字符串,echo结构可以一次输出多个值;print()只可以输出一个值;printf()可以格式化输出;print_r()可以输出数组,对调试很有好处,下面一一进行介绍。

    1.echo

    echo 是PHP的一个关键字,它没有返回值,在写法上,它可以省略小括号,实例代码如下:

    1. echo 'Test String'
    2. echo('Test String'); 

    2.print

    print 也是PHP的一个关键字,它有返回值,一般返回true,返回false的情况应该没有,在写法上,它和echo一样,可以省略小括号,如下代码:

    1. print 'Test String'
    2. print('Test String');  

    3.printf

    printf可以像C语言的printf一样,格式化输出一个字符串,它的格式和C语言差不多,都是以%开头,其说明符定义如下。

    b   参数为整数,显示其二进制

    c   参数为整数,显示对应ASCII字符

    d   参数为整数,显示其十进制

    f   参数为双精度,显示为浮点数

    e   参数为双精度,显示为科学计数型

    g   参数为双精度,显示为浮点数或科学计数型

    o   参数为整数,显示其八进制

    s   参数为字符串,显示为字符串

    u   参数为无符号整数,显示其十进制

    x/X 参数为整数,显示其十六进制(分别为大小写显示)

    %   输出% 

    要说明的是:

    f,e默认小数点后六位,g在超过六位(加小数点)时,会四舍五入,如果四舍五入之后的值小于1000000会直接输出,大于的1000000的话会显示成科学计数型,f在值大于1.2e23输出的结果是不对的。

    以上除%以外,其它的都可以指定输出总位数(小数点、E都算一位),并可以指定0或空格为补位符,还可以指定补位在左还是在右。

    f,e可以指定小数点后位数。

    如 %5d 表示输出总位数为5,不足左补空格; %05d 表示输出总位数为5,不足左补0; %05.1f 表示输出总位数为5,不足左补0,小数点后1位; %-05.1f 表示输出总位数为5,不足右补0,小数点后1位;

    示例代码如下:

    1. printf("%7.2f", 1.2);       // " 1.20" 
    2. printf("%-07.2f", 1.2);     // "1.20000"  

    4.sprintf

    sprintf和格式转换和printf一样,两者区别在于printf直接输出,而sprintf返回一个格式化后的字符串。

    5.print_r和var_dump

    print_r和var_dump都能输出数组和对象,但print_r对布尔型的输出不太明显;var_dump输出比较详细,一般调试时用得多,如下代码:

    1. $v = new test(); 
    2. print_r($v); 
    3. var_dump($v); 
    4. class test { 
    5.     public $num = 1; 
    6.     public $str = "222"
    7.     public $bln = true; 
    8.     function test() { 
    9.         global $num
    10.     } 
    11. }  
    12. /* 
    13. 结果为: 
    14. test Object 
    15. ( 
    16.     [num] => 1 
    17.     [str] => 222 
    18.     [bool] => 1 
    19. ) 
    20. object(test)#1 (3) { 
    21.   ["num"]=> 
    22.   int(1) 
    23.   ["str"]=> 
    24.   string(3) "222" 
    25.   ["bool"]=> 
    26.   bool(true) 
    27. } 
    28. */ 

    字符串比较和查找

    1.字符串比较

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

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

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

    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. var_dump(substr('1234567890', 8));       // 90 
    3. var_dump(substr('1234567890', 0, 2));    // 12 
    4. // 反方向子串 
    5. var_dump(substr('1234567890', -8));      // 34567890 
    6. var_dump(substr('1234567890', -8, -2));  // 345678 
    7. var_dump(substr('1234567890', -8, 2));   // 34 
    8. // 插入 
    9. var_dump(substr_replace('1234567890''a', 0, 0));   // a1234567890 
    10. // 删除 
    11. var_dump(substr_replace('1234567890''', 8));       // 12345678 
    12. // 反方向删除 
    13. var_dump(substr_replace('1234567890''', -2, -1));  // 123456780 
    14. // 替换 
    15. var_dump(substr_replace('1234567890''a', 0, 1));   // a234567890 
    16. // 反方向替换 
    17. var_dump(substr_replace('1234567890''a', -2, -1)); // 12345678a0 
    18. // 字符串反转 
    19. var_dump(strrev('1234567890'));     // 0987654321 
    20. // 重复字符串 
    21. var_dump(str_repeat('12', 3));      // 121212 
    22. // 填充字符串 
    23. var_dump(str_pad('a', 10, '12'));               // a121212121 
    24. var_dump(str_pad('a', 10, '12', STR_PAD_LEFT)); // 121212121a 
    25. var_dump(str_pad('a', 10, '12', STR_PAD_BOTH)); // 1212a12121 

    3.分解字符串

    在PHP中,字符串的分解用explode,合并用implode(join是implode的别名),标记用strtok,还有另一个函数slipt也可以分解(正则分解),但5.3以后版本已经不推介了, 另外PHP中还有一个sscanf()函数,用于读取字符串。

    strtok标记时,用strtok($str, $token)来初始化,用strtok($token)来继续取值,代码如下:

    1. $str = '1,2,3'
    2. $arr1 = explode(','$str);     // array('1', '2', '3') 
    3. $arr2 = explode(','$str, 2);  // array('1', '2,3') 
    4. $str1 = implode(','$arr1);    // '1,2,3' 
    5. $str2 = strtok($str',');      // 1 
    6. $str3 = strtok(',');            // 2 
    7. $str4 = strtok(',');            // 3 
    8. // array(86, 10, 88888888, 'Beijin') 
    9. $arr3 = sscanf('+86(10)88888888 Beijin''+%d(%d)%d %s'); 

    4.字符串查找

    在PHP中,字符串的查找有三个系列,返回位置的、返回字符串的、掩码个数匹配,其中,返回位置的的函数一共有两个,strpos()和strrpos();返回字符串的也有两个strstr()和strchr();返回掩码匹配数的函数有strspn()和strcspn()。

    strpos表示从左边开始计数,返回要查找的字符串第一次出现的位置;strrpos表示从右边计数,返回要查找的字符串第一次出现的位置。

    strstr表示从左边计数,返回要查找字符串第一次到结尾的子串(包括查找字符串),当查找的是字符时,可以用ascii码数字来表示字符;stristr表示不区分大小查找;strchr是strstr的别名;strrchr返回字符最后出现到结尾的子串。

    strspn表示从左边计数,第一次出现非掩码之前的子串的字符数;strcspn表示从左边计数,第一次出现掩码之前的子串的字符数。

    示例代码如下:

    1. $pos = strpos('This a hello world program'' ');        // 4 
    2. $pos = strpos('This a hello world program', 32);         // 4 
    3. $pos = strrpos('This a hello world program'' ');       // 18 
    4. $pos = strrpos('This a hello world program', 32);        // 18 
    5. $str = strstr('This a hello world program'' ');        // " a hello world program" 
    6. $str = strstr('This a hello world program', 32);         // " a hello world program" 
    7. $str = stristr('This a hello world program'' A');      // "a hello world program" 
    8. $str = stristr('This a hello world program', 65);        // "a hello world program" 
    9. $str = strrchr('This a hello world program'' ');       // " program" 
    10. $str = strrchr('This a hello world program', 32);        // " program" 
    11. $str1 = "12345 12345 12345"
    12. $len = strspn($str1'12345');                           // 5 
    13. $len = strcspn($str1' ');                 //5 

    常用的字符串操作

    1.访问单个字符

    在PHP中,可以把字符串当成一个字符的数组,可以直接用数组的访问方法来访问字符串。如$str[0]。

    在这里要注意的是,如果字符是ASCII码以外时,访问会有问题,因为这种访问只能取得一个字节。

    2.删除空白字符

    在PHP中,可以用trim(), ltrim(), rtrim()三个函数来删除字符串开头或结尾的空白字符。

    其中,trim()用于删除字符前后的空白字符;ltrim()用于删除字符左侧的空白字符;rtrim()用于删除字符右侧的空白字符。

    在默认情况下,会删除以下字符:空格( |Ox20)、制表符TAB(n|Ox09)、换行(n|OxOA)、回车(r|0x0D)、空字符(|Ox00)。

    也可以自己在参数里指定。

    3.改变大小写

    strtolower() 把整个字符串转化为小写。

    strtoupper() 把整个字符串转化为大写。

    ucfirst() 把字符串的第一个字符转化为大写,其它字符不变。

    ucwords() 把字符串里的每一个单词的第一个字符转为大写,其它字符不变。

    4.HTML转义

    HTML转义是指把字符串转化成HTML显示用的字符串,对此,PHP中有两个函数实现此功能。

    htmlentities() 把除空格外的所有可以转换的字符都转成HTML形式。

    htmlspecialchars() 把必要的(与符号&、双引号、单引号、大于号、小于号)转化为HTML形式。

    5.URL转义

    URL转义是指把字符串转化成URL字符串,对此,PHP中有两个函数实现此功能。

    urlencode()和urldecode()是把空格转成+号,其它的转成URL字符串,前者转换,后者反转换

    rawurlencode()和rawurldecode()是把空格转成%20号,即普通URL字符串,其它的转成URL字符串,前者转换,后者反转换

    6.SQL转义

    跟PHP最相关的两个数据库(MySQL和PostgreSQL)都是以反斜杠为转义符的(Oracle是自己定义,其它数据库没有测试),对此PHP中用addslashes()函数来添加这些反斜杠,用stripcslashes()函数来删除这些反斜杠

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » php字符串与字符串操作教程详解

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级