用户名:  密码:   
您当前的位置:首页 > 网页设计 >  PHP > 

第5讲 字串简介,单双引区别,连接,去除首尾空格,转义,长度,截取,替换,搜索,比较,格式化与分割

上次修改时间: 2022-03-24 11:37:57      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\PHP相关\PHP入门到精通笔记\      下一页

第5讲 字串简介,单双引区别,连接,去除首尾空格,转义,长度,截取,替换,搜索,比较,格式化与分割

5.1 字符串简介
 数字0-9,字母a-z,特殊字符¥#&等,不可见字符,\n换行, \r回车,\t制表等
 输出字符echo "I like PHP"
 
5.2 单引号与双引号区别
 双引号内容可被解释且替换,单引号中内容被作普通字符处理
 <?php
 $test = "PHP"
 $str = "I Like $test";
 $str1 = "I like $test"; //单引所见即所得
 echo $str;
 echo $str1;
 ?>
5.3 字符串的连接符英文的点.,类开delphi的+
 $name="明日编程典:";
 $url= "www.mrbccd";
 echo $name.$url.".com";
5.4 字符串操作
 1)去除字串首尾空格和特殊字符
  a. trim()去除字串左右空格与特殊字符
  b. ltrim()去除左边空格与特殊字符
  c. rtrim()去除右边。。。
   $str ="\r\r(:@_@ aaaaaa  @_@:)    "
   echo trim($str);
   echo trim($str,"\r\r(: :)") //以上三个函数都有个可选参数,用以去除指定字符  
 2)转义,还原字符串数据
  a. 手动转义,在字符前加\
   例:echo '\'' //可以输出单引号'
    echo 'select * from aaa where bb= \'cc\' ';  //
  b. 自动转义,
   addslashes用来把字串中要转义才能输出的字符前斜线"\"转义,比如单引号
   stripslashes用来将前面addslashes转义后的字串的转义符删除以还原字串
   例:echo 'select * from aaa where bb= \'cc\' '; 
    echo $str.<br>";
    $a = addslashes($str);
    echo $a."<br>"
    $b = stripslashes($a);
    echo $b."<br>"; 
 3)获取字串长度
  strlen() //汉字及标点占2字符,英文其它每个1字符
  例1:echo strlen("计算这个字串:www");
  例2:if(strlen($_POST['pwd'])<6){  //检测密码的输入长度不得少于6位
     echo "<script>alert('密码不得少于6位'); history.back();</script>";}
    else{
     echo "input OK"}  
 4)截取字符串
  语法:string substr(string str, int strart, [int length]) 
   参1,分别是要截取的字串,
   参2表从第个字符开始,为负数时表从倒数第几个开始
   参3表要截取的长度,为负表截取到倒数第n个字符
    注:参2从0开始计算,即第一个字符表0
  例:echo substr("abcdefghijklmnopqrst",6); //从第6个字符开始截取
   echo substr("abcdefghijklmnopqrst",4,4); //从第4个字符开始截取4个字符
   echo substr("abcdefghijklmnopqrst",-4,4); //从第倒数第4个字符开始截取4个字符
   echo substr("abcdefghijklmnopqrst",0,-4); //从第1个开始截取倒数第4个字符
  例2:$text="abcdefghijkmnopqrstuvwxyz";
   if (strlen($text)>10){
    echo substr($text,0,10)."...";
    }else{
    echo $test;
    }    
 5)比较两个字串
  语法:int strcmp(string str1,string str2)
  //相同返回0,参1大于参2返回值大于0,小于参2返回值小于0
  //函数区分大小写
  $s1="AABB";
  $s2="AABB";
  $s3="mystr";
  $s4="MYSTR";
  echo strcmp(s1,s2);
  echo strcmp(s3,s4);
 6)检索字串
  a. string strstr(string haystack, string needle)相当于strstr(str1,str2)
   //返回str2在str1中首次出现的位置到str1末的字串,没找到则返回false
   例:echo strstr("aabbccdd","bb");
    echo strstr("aabbccddbb","bb");
  b. int substr_count(string haystack,string needle)相当于substr_cout(str1,str2)
   //返回str2在str1中出现的次数
   例:$str1="aabbccddaa";
    echo substr_count($str,'aa')
 7)替换字串
  a. mixed str_ireplace(mixed search, imxed replace,mix subject [,int &count])
   相当于:str_ireplace(str2,str1,$str); ;//将str中的str2替换为str1
   例:$str1="aa";
    $str2="11";
    $str="aabbccee";
  b. string substr_replace(string str, string repl, int start,[int length])
   substr_replace(str,str1,9,2) //把str中从第9个字符开始的2个字符替换为str1
   str为要操作的字串
   repl为要替换为的字串
   start从那个字串开始
   length替换的长度
   例:$str="用今日的辛勤工作,换明日的双倍回报";
    $replace="百倍";
    echo substr_replace($str,$replace,26,4) //把第26开字符开始的4个字符替换为$replace  
 8)格式化字串
  string number_format(float number,[int num_decimal_places],[string dec_seperator],[string thousands_seperator])
  //参数可是1个,2个,4个,不能是3个
  //一个参数时舍去小数点后的值,每1千用,隔开
  //2个参数时去掉小数点后num_decimal_places位后的值,再将每1千用,隔开
  //4个参数时去掉小数点后num_decimal_places位后的值,再用dec_seperator替换小数点,用thousands_seperator替换千位分隔符,
  例:$num=1868.99;
   echo number_format($num);
   echo number_format($num,2);
   $num=11252868.9954538;
   echo number_format($num);
   echo number_format($num,2,'.','.');
 9)分割字串,返回值为数组
  array explode(string separator,string str,[int limit])
  参数separator表分割符,为空explode将返回false,分割符在str中找不到,则返回包含str全部的只有一个值的数组,
  参数str为要分割的字串
  参数limit可选
  例:$str="aa@bb@cc@dd"
   $str_arr=explode("@",$str);
   print_r($str_arr);
   echo $str_arr[0];