php 字符 常用函数

//输出一个或多个字符串
//注:echo  不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以
$a = "admin1";
$b = "adminb";
echo $a, $b . "<br/>";


//使用一个字符串分割另一个字符串
//array explode  ( string $delimiter  , string $string  [, int $limit  ] )
//注:如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。 如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。 如果 limit 是 0,则会被当做 1。
$str = 'one|two|three|four';
var_dump(explode("|", $str)); //array(4) { [0]=> string(3) "one" [1]=> string(3) "two" [2]=> string(5) "three" [3]=> string(4) "four" }
var_dump(explode("|", $str, 1));//array(1) { [0]=> string(18) "one|two|three|four" }
var_dump(explode("|", $str, -1));//array(3) { [0]=> string(3) "one" [1]=> string(3) "two" [2]=> string(5) "three" }


//将一个一维数组的值转化为字符串
//implode  ( string $glue  , array $pieces  )
//注:用 glue 将一维数组的值连接为一个字符串。
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated;  // lastname,email,phone
var_dump(implode('hello', array()));  // string(0) ""


//使一个字符串的第一个字符小写
// lcfirst  ( string $str  )
//注:只有字符串的第一个是英文字母并且大写才会转换
echo lcfirst("我");  //我
echo lcfirst("Hello"); //hello


//将字符串的首字母转换为大写 
//ucfirst  ( string $str  )
echo ucfirst("world");  //World


//将字符串中每个单词的首字母转换为大写 
//ucwords  ( string $str  )
//注:如果首字符是字母转换为大写字母
echo ucwords("i am yang"); //I Am Yang


//将字符串转化为小写 
//strtolower  ( string $str  )
//注:如果存在字母则转换为小写字母
echo strtolower("我 Is Yang"); //我 is yang


//将字符串转化为大写
//strtoupper  ( string $string  )
//注:如果存在字母则转换为大写字母
echo strtoupper("我 is yang"); //我 IS YANG


//计算字符串的 MD5 散列值 
//md5  ( string $str  [, bool $raw_output  = false  ] )
//注:如果可选的 raw_output 被设置为 TRUE ,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 
echo md5("admin"); //21232f297a57a5a743894a0e4a801fc3
echo md5("admin", TRUE); //!#/)zW¥§C‰JJ€Ã


//计算字符串的 sha1 散列值 
//sha1  ( string $str  [, bool $raw_output  = false  ] )
//注:如果可选的 raw_output 参数被设置为 TRUE ,那么sha1摘要将以20字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字。 
echo sha1("admin"); //d033e22ae348aeb5660fc2140aec35850c4da997
echo sha1("admin", TRUE); //Ð3â*ãH®µf ì5…M©—


//以千位分隔符方式格式化一个数字
//number_format  ( float $number  , int $decimals  = 0  , string $dec_point  = '.'  , string $thousands_sep  = ','  )
//注:参数个数必须是1、2、4
echo number_format("123.45"); //123
echo number_format("123.45", 3); //123.450
echo number_format(1230.45, 3, ';');  //报错
echo number_format(1230.45, 3, ' ', ','); //1,230 450


//返回字符的 ASCII 码值
//int ord  ( string $string  )
//注:该函数是 chr()  的互补函数。 返回的是字符串第一个字符的ASCII码
echo ord("我admin"); //230


//将字符串解析成多个变量
//void  parse_str  ( string $str  [, array &$arr  ] )
//注:如果 str 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域。
$str = "http://localhost/php/string.php?a=1&b=2";
parse_str($str, $arr);
var_dump($arr); //array(2) { ["http://localhost/php/string_php?a"]=> string(1) "1" ["b"]=> string(1) "2" }
parse_str("i am yang", $arr);
var_dump($arr); //array(1) { ["i_am_yang"]=> string(0) "" }


//重复一个字符串
//string str_repeat  ( string $input  , int $multiplier  )
//注:返回 input 重复 multiplier 次后的结果。 
echo str_repeat("i am yang", 2);//i am yangi am yang


//子字符串替换
//mixed  str_replace  ( mixed  $search  , mixed  $replace  , mixed  $subject  [, int &$count  ] )
//注:$count 为替换的次数
//echo str_replace("am", "are", "i am yang"); //i are yang
$arr = array('a', 'y');
echo str_replace($arr, "", "i am yang"); //i m ng


//将字符串转换为数组
//array str_split  ( string $string  [, int $split_length  = 1  ] )
//注:$split_length代表拆分成的数组值的字符串的长度
var_dump(str_split("i am yang")); //将字符串拆分为一个字母的数组
var_dump(str_split("i am yang", 3)); //array(3) { [0]=> string(3) "i a" [1]=> string(3) "m y" [2]=> string(3) "ang" }


//从字符串中去除 HTML 和 PHP 标记
//string strip_tags  ( string $str  [, string $allowable_tags  ] )
//注:使用可选的第二个参数指定不被去除的字符列表。 
echo strip_tags("<h1>i am yang ,i can <?php"); //i am yang ,i can
echo strip_tags("<h1>i am yang ,i can php </h1>", "<h1>"); //<h1>i am yang ,i can php </h1>


//获取字符串长度
//int strlen  ( string $string  )
//注:字符串中包含中文时计算不准确
echo strlen("i am yang"); //9
echo strlen("我是 yang"); //11


//查找字符串首次出现的位置
//mixed  strpos  ( string $haystack  , mixed  $needle  [, int $offset  = 0  ] )
//注:返回 needle 在 haystack 中首次出现的数字位置。 $offset不能为负数,index(索引)从0开始
//strrpos
echo strpos("http://localhost/php/string.php", "/"); //5


//查找指定字符在字符串中的最后一次出现
//string strrchr  ( string $haystack  , mixed  $needle  )
//注:该函数返回字符串的一部分。如果 needle 未被找到,返回 FALSE 。
//strchr => strstr
echo strrchr("i am yang", "a"); //ang


//反转字符串
//string strrev  ( string $string  )
//注:
echo strrev("i am yang"); //gnay ma i


//查找字符串的首次出现
//string strstr  ( string $haystack  , mixed  $needle  [, bool $before_needle  = false  ] )
//注:false:查找的字符串向后截取,若为 TRUE , strstr()  将返回 needle 在 haystack 中的位置之前的部分。
echo strstr("i am yang yang", "am");  //am yang yang


//返回字符串的子串 
//string substr  ( string $string  , int $start  [, int $length  ] )
//注:不包含$start位置上的字符,$start为负数时,则从最后开始数$length个字符开始向后截取
echo substr("i am yang", 1); //am yang
echo substr("i am yang", -2, 2); //ng


//计算字串出现的次数
//int substr_count  ( string $haystack  , string $needle  [, int $offset  = 0  [, int $length  ]] )
//注:该函数不会计算重叠字符串。
echo substr_count("i am yang", "a"); //i am yang => 2
echo substr_count("i am yang", "a", 3); // m yang => 1
echo substr_count("i am yang", "a", 3, 3); //m y => 0

  

上一篇:【DB笔试面试474】普通表转换为分区表有哪些办法?


下一篇:【优化】COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)等