字符串输出函数汇总
•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>他是\'一个 有"故事"的人</h3>'; //echo '不转义输出:'.$str.'<br>'; ////转义输出,单引号,双引号,&,<,> //echo '转义输出:'.htmlspecialchars($str).'<hr>'; //$str = '<h3>他是\'一个 有"故事"的人</h3>';
•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 = '<p>中美&贸$易战,\'中国\'必胜</p>'; //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是要转化的数组