博客列表 >php的字符串学习

php的字符串学习

李明伟的博客
李明伟的博客原创
2019年05月09日 21:38:30711浏览

字符串输出函数汇总

•echo :  语言结构, 输出一个或多个字符串,字面量或单值变量

 •print:功能与echo相同,输出一个或多个标量,但会有一个返回值,成功返回 1

 •print_r($var, $bool): 可以输出一个标量,数组,对象等任何类型,可视为print的升级版

 •var_dump($var1,$var2... ): 可以详细的输出一个或多个任何类型的变量,可视为echo升级版

 •var_export( $var, $bool): 以纯字符串形式输出任何类型的数据,可用于php语句,适合于结果拼装

 •printf(“格式字符串”,数据 ): 输出格式化的字符串,变量使用占位符,主要用于标量数据

字符串的过滤与填充

•trim($str), ltrim($str), rtrim($str):  过滤掉字符串中的指定字符

//trim(字符串,要过滤的字符串)
//ltrim(),rtrim()
$input = ' admin   ';
echo '过滤前:'.$input.'原始长度:'.strlen($input).'<br>';
$input = trim($input);
echo '过滤后:'.$input.'原始长度:'.strlen($input).'<br>';
//demo2.php 删除扩展名的操作——rtrim
$str = 'demo2.php';
$str = rtrim($str,'.php');
echo $str.'<br>';
//ltrim()
$str = 'www.php.cn';
$str = ltrim($str,'www.');
echo $str.'<br>';
//正则过滤
$str='123php中文网0987';
$str = trim($str,'0..9');
echo $str.'<hr>';

 •str_pad($str,1 $size, $str2, FLAG):向指定方向,填充指定字符串到指定长度

//字符串填充:str_pad($str(要填充的字符串),$size(字符串的长度),$str(要填充的内容,默认为空格),FLAG(填充的方向,默认为向右))
$str = 'php.cn';
echo '<pre><span style="background-color: yellow">'.$str.'</span></pre><br>';
echo '当前长度:'.strlen($str).'<br>';
//用默认空格填充
$str = str_pad($str,20);
echo '<pre><span style="background-color: yellow">'.$str.'</span></pre><br>';
echo '当前长度:'.strlen($str).'<br>';
//用指定字符填充(在字符串左边填充)
$str = 'php.cn';
$str = str_pad($str,20,'*',STR_PAD_LEFT);
echo '<pre><span style="background-color: yellow">'.$str.'</span></pre><br>';
echo '当前长度:'.strlen($str).'<br>';
//在字符串两边填充
$str = 'php.cn';
$str = str_pad($str,20,'*',STR_PAD_BOTH);
echo '<pre><span style="background-color: yellow">'.$str.'</span></pre><br>';
echo '当前长度:'.strlen($str).'<br>';

注意:可以使用字符串填充对表单传来的密码后再对密码进行MD5或sha1()加密,这样就可以防止破译软件的破译。

字符串的大小写转换

•strtolower($str):  将字符串转为小写

 •strtoupper($str):将字符串转为大写

 •ucfirst($str1, $str2...): 将字符串的首字母转为大写 

•ucwords($str): 将字符串的每个单词的首字母转为大写

对html标签的过滤与填充

•nl2br($str): 在换行符\n前插入html换行标签<br> 

//2指代to
//1.nl2br():在字符串中的\n字符之前插入一个<br>标签
//$str = "2018年世界杯\n中国除了足球队没有去,其他都去了";
//echo nl2br($str).'<hr>';

•htmlspecialchars($str): 将代码中的引号,&,标签标记<,>转为html实体字符,不解析 

////2.htmlspecialchars()和反操作:htmlspecialchars_decode()
//$str = '<h3>他是\'一个&nbsp;有"故事"的人</h3>';
//echo '不转义输出:'.$str.'<br>';
////转义输出,单引号,双引号,&,<,>
//echo '转义输出:'.htmlspecialchars($str).'<hr>';
//$str = '&lt;h3&gt;他是\'一个&nbsp;有"故事"的人&lt;/h3&gt;';

•htmlspecialchars_decode($str): htmlspecialchars($str)反操作

//echo '转义输出:'.htmlspecialchars_decode($str).'<hr>';
//

 •htmlentities($str):  将所有的html标记全转实体,包括了htmlspecialchars()中的标记

////3.htmlentities()反操作:html_entity_decode()
//$str = "<p>中美&贸\$易战,'中国'必胜</p>";
//echo '原始数据:'.$str.'<br>';
//echo '转义输出:'.htmlentities($str).'<hr>';
//$str = '&lt;p&gt;中美&amp;贸$易战,\'中国\'必胜&lt;/p&gt;';
//echo '原始数据:'.$str.'<br>';
//

 •html_entity_decode():  htmlentities()的反操作 

//echo '转义输出:'.html_entity_decode($str).'<hr>';

•strip_tags(): 过滤掉所有的html或php标记,也可以设置允许保留的标记,很实用

//echo strip_tags($str).'<hr>';
////保留指定的标签(传入第二个参数,表示要留下的标签)
//echo strip_tags($str,'<span>').'<hr>';

最常用的字符串查询函数

•substr($str,$offset, $length):  根据位置查询,获取指定位置或区间内的字符串

//1.substr($str,$offset,$length).获取指定位置或区间内的位置
$str = 'PHP is the best programming language';
//从索引为11的位置开始,返回剩下的全部字符
echo substr($str,11).'<br>';

//从索引为11的位置开始,返回4个字符
echo substr($str,11,4).'<br>';

//负数,则结尾开始取
echo substr($str,-8).'<br>';
//从结尾开始往前推5位,再后推4位
echo substr($str,-8,4).'<br>';

 •strstr($str1,$str2,$bool):  查询字符串首次出现的位置,返回字符串 

//strstr($str1,$str2,$bool)查找字符串首次出现的位置,返回剩下部分
//如果没有找到,返回false
$email = 'admin@php.cn';
//查询@是否存在,并返回后面内容
echo strstr($email,'@').'<br>';
//查询@符是否存在,并返回@前面的内容
echo strstr($email,'@',true).'<br>';
echo '<hr>';

•strpos($str1,$str2,$start): 查询字符串首次出现的位置,返回所在位置

//3.strpos($str,$str1,$start):查询字符串首页出现的位置并返回位置
//
if(strpos($str,'best')){
    echo 'best 是存在的';
}else{
    echo '没找到';
}
;

字符串的查找与替换

•str_replace($str1,$str2, $str3):  将字符串中的部分内容,用目标字符串进行替换

echo str_replace(['Li','MingWei','PHP'],['L','MW','JAVA'],$str).'<hr>';

•str_ireplace():于str_replace()函数类似,但忽略了大小写

echo str_ireplace('php','PYTHON',$str).'<hr>';

 •substr_replace($str1,$str2, $offset,$size):  功能与str_replace()类似,但指定了替换区间

//2.substr_replace()与str_replace()类似,仅仅是指定了目标字符串的匹配区间
//从0开始,直接结束,将新字符串进行替换:PHP是最好的编程语言
echo $str.'<br>';
//第三个参数就是替换开始的位置
echo substr_replace($str,'PHP是最好的编程语言',0).'<hr>';
//第四个参数就是要替换的长度
echo substr_replace($str,'PHP是最好的编程语言',0,strlen($str)).'<hr>';
//指定位置插入字符串
echo substr_replace($str,'PHP中文网',13).'<hr>';
//区间删除
echo substr_replace($str,'',7,3).'<br>';

php的其他数组函数

urlencode($url):  对url地址字符串进行编码

//1.urlencode($url):就是在特殊字符前面加个百分号,防止服务器解析是出现歧义
$url = 'http://www.php.cn/';
echo $url.'<hr>';
echo urlencode($url).'<hr>';
$url = urldecode($url).'<hr>';
echo '<a href="'.$url.'">php中文网</a><hr>';

http_build_query($arr):生成url动态查询字符串

//2.http_build_query()中生成动态查询字符串
//?p=5
//?cate_id&art_id=10
echo http_build_query(['cate_id'=>3,'art_id'=>10]).'<hr>';
//parse_url解析当前url地址
$url = 'http://www.php.cn/course.html?p=5';
echo var_export(parse_url($url),true).'<hr>';

json_encode($var): 将数据转为json格式

json_decode($str): 将json格式的字符串解析还原为变量

str_repeat(string,num):将字符串指定输出num次

strcmp($str1,$str2):比较链各个字符串的大小,比较时计算了两个字符串相差的个数一起作为返回的情况。

1.$str1=$str2时返回0;

2.$str1<$str2时返回-1;

3.$str1>$str2时返回1;

对于第二种与第三种情况中的-1与1只代表返回的值的正负,真正返回的是-1乘两个字符串相差的个数

例如:$str1<$str且相差七个字符则返回-7

explode(separator,string,limit)函数将字符串转化为数组

separator规定在哪里分割字符串(不可以为空)

string要分割的字符串

limit规定所返回的数组元素的数目

implode(separator,array)函数将数组转化为字符串

separator规定数组元素之间放置的内容

array是要转化的数组



声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议