常用的字符串函数
implode()
: 一维数组转字符串,用指定字符串将数组组装成一个字符串返
echo implode('----', ['html', 'css', 'js', 'php']), '<br>';
echo '<br>';
explode()
: 使用一个字符串来分隔另一个字符串, 返回数组
$paras = 'html----css----js----php';
printf('<pre>%s</pre>', print_r(explode('----', $paras, 4), true));
fprintf()
:将格式化的字符串写入到一个文件流中
$handle = fopen('test.txt', 'w') or die('打开失败');
fprintf($handle,'这里是要保存的文本内容');
file_get_contents()
:将文件内容返回为字符串
echo file_get_contents('test.txt');
echo '<hr>';
sscanf()
: 按指定的格式输入数据
var_dump(sscanf('DD-2020052133666', 'DD-%d'));
echo '<hr>';
// 读取数据
list($DD) = sscanf('DD-2020052133666', 'DD-%d');
echo $DD;
echo '<hr>';
substr_count(要检查的目标字符串, 要检查的内容, 起始位置, 长度)
: 统计某个子串的出现的频率/次数(起始位置和长度不填写的话在全局查找)
// 在全局中查找
echo substr_count('This is a test', 'is'), '<br>';
// 加上起始位置
echo substr_count('This is a test', 'is', 3), '<br>';
// 加上长度
echo substr_count('This is a test', 'is', 3, 3), '<br>';
substr_replace(目标字符串, 要替换的内容, 起始位置, 长度)
: 替换字符串中的字符串
// 全部替换
echo substr_replace('html, css,js,java', 'php', 0), '<br>';
// 在一个字符串上添加一个字符串
echo substr_replace('html, css,js,java', 'php, ', 0, 0), '<br>';
str_getcsv($str)
:解析操作csv文件,结果是一个数组
// str_getcsv('csv格式的字符串')
$res =print_r(str_getcsv('2, peter, peter@php.cn'),true);
printf('<pre>%s</pre>', $res);
echo '<hr>';
file_get_contents()
:读取一个文件,将文件内容以字符串返回
$csvStr = file_get_contents('test.csv');
print_r($csvStr);
echo '<hr>';
explode(分隔符,目标)
:将字符串转为数组
$csvArr = explode(",", $csvStr);
print_r($csvArr);
str_replace($search, $replaced, $subject, $int)
: 字符串替换
echo str_replace('php', 'HTML', 'PHP中文网:独家原创,永久免费的在线php视频教程,php技术学习阵地!', $count), '<br>';
echo 'php 被替换了 : ' .$count . '<br>';
str_ireplace($search, $replaced, $subject, $int)
: str_replace 的忽略大小写版本
echo str_replace('php', 'HTML', 'PHP中文网:独家原创,永久免费的在线php视频教程,php技术学习阵地!', $count), '<br>';
echo 'php 被替换了 : ' .$count . '<br>';
// 也支持数组参数实现批量替换
$search = ['交友', '广告', '直播', '带货'];
$replace =['***', '===', '###', '+++'];
$comment = '广告代理, 直播教学, 免费带货, 异性交友';
echo str_replace($search, '###', $comment), '<br>';
echo str_replace($search,$replace, $comment), '<br>';
echo '<hr>';
strlen($str)
:字符串长度trim()
:去空格
$str = ' This is a string ';
// 字符串长度
echo strlen($str), '<br>';
// trim()去空格
echo strlen(trim($str)), '<br>';
// trim()去左空格
echo strlen(ltrim($str)), '<br>';
// trim()去右空格
echo strlen(rtrim($str)), '<br>';
$str = '123456890php.cn php中文网 this is good site654321';
// 删除指定的字符串(顺序不重要)
echo trim($str, '12'), '<br>';
// 删除指定范围的数字
echo trim($str, '1..6'), '<br>';
// 删除全部的数字
echo trim($str, '0..9'), '<br>';
// 同名函数
// chop()
strip_tags
从字符串中去除 HTML 和 PHP 标记
echo strip_tags('<h2>php.cn</h2><?php echo "Hello" ?>');
$_SERVER['QUERY_STRING']
获取查询字符串parse_str()
: 解析查询字符串
// http://php.edu/0422/case/demo2.php?id=5&name=admin&role=1
// ?id=5&name=admin&role=1: 查询字符串
echo $queryString = $_SERVER['QUERY_STRING'];
parse_str( $queryString, $arr);
printf('<pre>%s</pre>', print_r($arr, true));
echo '<hr>';
http_build_query($data)
:生成查询字符串
$data = ['name'=>'peter zhu', 'age'=>30];
echo http_build_query($data). '<hr>';
// name=peter+zhu&age=30
// 参数支持对象
// echo http_build_query((new class {
// public $name = 'admin';
// public $email = 'admin@php.cn';
// public $age = 99;
// })). '<br>';
总结
implode()
: 一维数组转字符串,用指定字符串将数组组装成一个字符串返
explode()
: 使用一个字符串来分隔另一个字符串, 返回数组
上面两个函数可以用于按格式保存文件\导入文件时使用
str_getcsv($str)
:解析操作csv文件,结果是一个数组,可将CSV文件解析成数组,用于数据读取处理
strip_tags
从字符串中去除 HTML 和 PHP 标记,可用于采集纯文本显示内容区块,过滤特殊字段
str_ireplace($search, $replaced, $subject, $int)
: str_replace(字符串替换) 的忽略大小写版本,可用于指定内容的替换,如关键字替换,非法字符替换