PHP梳理之string

梳理 php 关于 string 的小知识

拼接

两种方式:

  • 普通字符串拼接
  • 运用sprintf

第一种方式在PHP基础笔记之类型有提到,示例主要针对 sprintf 函数:

1
2
3
4
5
6
7
8
<?php
$name = 'Jack';
$age = 10;

echo sprintf('His name is %s.', $name);// His name is Jack.

printf('His name is %s, and he is %s.', $name, $age);// His name is Jack, and he is 10.
?>

格式化

  • number_format - 以千位分隔符方式格式化一个数字
  • 如果要替换点千位分隔符需要加参数
  • ucfirst,lcfirst 首字母大|小写
  • trim 过滤掉字符串前后无用字符(空格,换行,缩进等)
  • ltrim 作用同上,但是只过滤字符串前面的无用字符
1
2
3
4
5
6
7
8
9
10
11
<?php
$numberFormat = '2387484'
echo number_format($numberFormat, 2);// 2,387,484.00
echo number_format($numberFormat, 2, '.', '');// 2387484.00
echo ucfirst('it\'s me!'); // It's me!
echo lcfirst('Hi!'); // hi!
echo trim(' Hi!
'); // Hi!
echo ltrim('
Hi!'); // Hi!
?>

转化

这里只提及简单转化,不深入

数字
  • floatval 提取浮点值
  • intval 获取变量整数值
  • 除此之外,你还可以用 settype 来转换
1
2
3
4
5
6
7
8
9
10
<?php
$a = '3.14158额';
$b = '1个';
$c = true;

echo floatval($a); // 3.14158
echo intval($b); // 1
settype($c, 'string');
echo $c; // 1
?>
数组
  • explode 按照特定字符分割成数组
  • str_split 按照步长分割数组
  • implode 可以把数组转化为字符串
1
2
3
4
5
6
7
<?php
$a = 'hello,world';
$b = explode(',', $a); // [’hello‘, 'world']
$c = str_split($a, 2); // ['he', 'll', 'o,', 'wo', 'rl', 'd']

$d = implode(',', $b); // 'hello,world'
?>

查询字符串中特定的值

  • 简单的字符串匹配
1
2
3
4
5
6
7
8
9
10
11
<?php
$content = '我竟无语凝噎';
$search = '无语';

$strpos = false !== strpos($content, $search); // true
$strstr = false === strstr($search, $content); // true
$strchr = false === strchr($search, $content); // true
// strchr is alias of strstr
$regx = "/(无语)/";
$preg = (bool)preg_match($regx, $content); // true
?>

替换

1
2
3
4
5
6
7
<?php
// 搜索替换
echo str_replace('言', '颜', '我竟无言以对'); // 我竟无颜以对

// 截取替换
echo substr_replace('hello,world', 'hi', 0, 5); // hi,world
?>

截取

1
2
3
4
5
<?php
echo substr('hello,world', 0, 5); // hello
echo substr('hello,world', 5, 1); // ,
echo substr('hello,world', 6, 5); // world
?>

重复

纯属个人喜好发现的好玩意

1
2
3
<?php
echo str_repeat('说了多少遍了,不要做六边形战士!', 3);
?>

To be continue