继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP的字符串函数大全

慕容森
关注TA
已关注
手记 386
粉丝 183
获赞 649

  1. 常用的字符串输出函数

  2. 常用的字符串格式化函数

    1. 去除空格和字符串填补函数

    2. 字符串大小写的转换

    3. 和HTML标签相关的字符串格式化

    4. 其他字符串格式化函数

  3. 字符串比较函数

    1. 按字节顺序进行字符串比较

    2. 按自然排序进行字符串比较

一、常用的字符串输出函数

  • echo( )   -- 输出字符串

  • print( )  -- 输出一个字符串

  • die( )    -- 输出一条消息,并退出当前脚本

  • printf( ) -- 输出格式化字符串

  • sprintf( )-- 把格式化的字符串写入一个变量中

echo、print、print_r、var_dump

<?php
echo ('abcd');
//echo print 两者的区别是print有返回值1,其余效果跟echo一样
print('abcd');

echo '<br>';

print_r('abc');
print_r(array(1,3,4));

var_dump('abc');
var_dump(array(1,3,4,'abc'));

printf 和 sprintf 都是格式化字符串


<?php
//printf 和 sprintf 都是格式化字符串
header("content-type:text/html;charset=utf-8");
//$str = "圆周率的值是3.1415926";

//%d,%f,%s  1       2        3         4
$format = "%s,现在是%d点,圆周率的值是%f,%1\$s";
// 想在最后一个位置插入第一个的字符,格式: 位置1\s 占位符
//值,返回int        1           2           3           4
printf($format,'今年是2014年,今天是8月7日','13abc','3.1415936abc');
//printf是需要参数的
echo '<hr>';
$str = sprintf($format,'今年是2014年,今天是8月7日','13abc','3.1415abc');
//sprintf 返回的是string类型
var_dump($str);
echo '<hr>';

echo $str;

二、常用的字符串格式化函数

    

1、去除空格和字符串填补函数

<?php
//去除两端指定字符
$str = ' wangerxiao ';
$str2 = trim($str);
var_dump($str);
var_dump($str2);
echo '<hr>';

$str = 'head_';
//去除两端的_
$str2 = trim($str,'_');
var_dump($str);
var_dump($str2);
echo '<hr>';

//要去除两边的符号,必须在‘’中输入完整才可以,否则无法去除
$str = 'head _|/.,';
//没有输入完整,无法去除
$str2 = trim($str,'_|/');
var_dump($str2);
echo '<hr>';

$str = 'head _|/.,';
//输入完整,去除两边的符号
$str2 = trim($str,'_|/.,');
var_dump($str2);

/////////////////////////////////////////////////////////////
//去除.jpg后缀名
$str = 'zhaopian.jpg';
$str2 = trim($str,'.jpg');
var_dump($str2);

//去除左侧指定字符
$str = 'loldotalol';
$str2 = ltrim($str,'lol');
var_dump($str2);

//去除右侧指定字符
$str3 = rtrim($str,'lol');
var_dump($str3);

填补函数str_pad();

<?php
//str_pad ——使用另一个字符串填充字符串为指定长度

$str = 'dota';
//填充为10个字符串,默认从右边添加
$str2 = str_pad($str,10,'lol');
var_dump($str2);

$str3  = str_pad($str,10,'lol',STR_PAD_LEFT);
var_dump($str3);

$str4 = str_pad($str,11,'l',STR_PAD_BOTH);
var_dump($str4);


结果:string(10) "dotalollol" | string(10) "lolloldota" | string(11) "llldotallll"

2、字符串大小写的转换

<?php
$str = "GOOD GOOD STUDY,DAY DAY UP!";

// 将大写字母变成小写字母
echo strtolower($str);

$str = 'no can ,no bibi!';

//将小写字母变成大写字母
echo strtoupper($str);

//首字母大写
echo ucfirst($str);

//每个单词首字母大写
echo ucwords($str);

3、和HTML标签相关联的字符串格式化


将字符串中 “\n”转换成  HTML换行符“<br />”,只有在浏览器中查看源码的时候才可以看到标签

<?php
$str =  "Long long a go, you yige xiao gunian zhuzai senlinli.\nyou yitian guniang yudao qige ren ,jiu wen nimen jiushi wo ming zhong zhuding de 7 ge xiao airenma?\n qizhog yige nan ren zhanchu lai shuo guniang ni zhaocuo dile ,women shi huluwa!";

//将字符串中 “\n”转换成  HTML换行符“<br />”

$str2 = nl2br($str);
var_dump($str2);

结果:

string(246) "Long long a go, you yige xiao gunian zhuzai senlinli.
you yitian guniang yudao qige ren ,jiu wen nimen jiushi wo ming zhong zhuding de 7 ge xiao airenma?
qizhog yige nan ren zhanchu lai shuo guniang ni zhaocuo dile ,women shi huluwa!" 


浏览器中的源码:


string(246) "Long long a go, you yige xiao gunian zhuzai senlinli.<br />
you yitian guniang yudao qige ren ,jiu wen nimen jiushi wo ming zhong zhuding de 7 ge xiao airenma?<br />
qizhog yige nan ren zhanchu lai shuo guniang ni zhaocuo dile ,women shi huluwa!"
  

转换成HTML字符实体


<?php
header("content-type:text/html;charset=utf-8");

$html = 'hanmeimei "我的名字叫韩梅梅,你叫什么名字?" "我叫兄弟!"';
echo $html;
echo '<hr>';


//将特殊字符转换成HTML实体字符
echo htmlspecialchars($html);

$chars = '<strong>男人们的世界</strong>';

//可以将所有的非ASCII码转换成对应的HTML实体字符
echo htmlentities($chars);


结果:

hanmeimei "我的名字叫韩梅梅,你叫什么名字?" "我叫兄弟!"


hanmeimei "我的名字叫韩梅梅,你叫什么名字?" "我叫兄弟!"


<strong>男人们的世界</strong>


浏览器源码:

hanmeimei "我的名字叫韩梅梅,你叫什么名字?" "我叫兄弟!"<hr>

hanmeimei &quot;我的名字叫韩梅梅,你叫什么名字?&quot; &quot;我叫兄弟!&quot;

&lt;strong&gt;男人们的世界&lt;/strong&gt;

剥去 HTML、XML 以及 PHP 的标签 strip_tags();


$str = '<script type="text/javacripte"></script>abc<html></html>';

//剥去 HTML、XML 以及 PHP 的标签
var_dump(strip_tags($str));

结果:

string(3) "abc"


浏览器源码:

string(3) "abc"


4、其他字符串格式化函数


翻转字符串 strrev();


$str = 'eij,genf,uoy evol I';

//翻转字符串
echo strrev($str);

结果:I love you,fneg,jie


统计字符串长度strlen();


<?php
$str = 'zhe shi yige henchang henchang de gushi :cong qian you zuoshan !';

//统计字符串长度
echo strlen($str);


四舍五入number_format();


<?php
$str = '1024.15926';
echo $str;
echo number_format($str);
echo '<hr>';

//四舍五入 保留2位小数
echo number_format($str,2);
echo '<hr>';

//第三个参数是小数点符号
//第四个参数是千分位符号
echo number_format($str,2,'&','$');

结果:

1024.159261,024


1,024.16


1$024&16

加密md5

<?php
$str = '';
echo md5($str);
echo '<hr>';
$str = '123456';
echo md5($str);
echo '<hr>';
$str = 123456;
echo md5($str)

结果:

d41d8cd98f00b204e9800998ecf8427e


e10adc3949ba59abbe56e057f20f883e


e10adc3949ba59abbe56e057f20f883e


三、字符串比较函数

PHP中,有多种方法可以对字符串进行比较,除了可以直接使用条件运算符(<, >, ==)加以比较外。

按字节进行字符串的比较

  • strcmp();(整个比较是否相同)

  • strncmp();(指定比较长度的字符串比较)

  • strcasecmp(); (不区分大小写的全串比较)

按自然排序法时行字符串的比较

  • strnatcmp(); 

字符串的模糊比较

  • similar_text(); (返回相似字符串的个数)


<?php
$str = 'gaofus2';
$str2 = 'gaofus0';

//按照字符比较两个字符串,如果前者大,返回1,相等返回0 小于 返回-1
var_dump(strcmp($str,$str2));

//进制安全比较字符串开头的若干个字符
var_dump(strncmp($str,$str2,3));

//
$str = 'A';
$str2 = 'a';

//二进制安全比较字符串(不区分大小写)
echo strcasecmp($str,$str2);

$str1 = 'user121';
$str2 = 'user1201';

// 使用自然排序算法比较字符串
var_dump(strnatcmp($str1,$str2));

//返回相似字符串的个数
var_dump(similar_text($str1,$str2));

结果:

int(1)


int(1)


0


int(-1)


int(7)


6、字符串的分割与拼装

<?php
$str = 'xiangjiao,huanggua,putao,mangguo,juzi,taozi';

// 用指定字符,将字符串分割到数组中
$arr = explode(',',$str);

echo '<pre>';
print_r($arr);

//implode(),join() 用指定字符将数组的各个单元值,连接成字符串
$str2 = join('#',$arr);
echo $str2;

结果:

Array

(

    [0] => xiangjiao

    [1] => huanggua

    [2] => putao

    [3] => mangguo

    [4] => juzi

    [5] => taozi

)

xiangjiao#huanggua#putao#mangguo#juzi#taozi


7、字符串的截取


<?php
$str = 'chiputaobutuputaopin';
// echo substr($str,1);
// echo substr($str,1,1);
// echo substr($str,-1);
// echo substr($str,1,-1);
// echo substr($str,-3,-1);

$str = '中国人民';
// echo substr($str,3);

//中文截取的解决方案
// echo mb_substr($str,0,1,'utf-8');
// echo iconv_substr($str,2,1,'utf-8');


8、字符串的查找


<?php
$str = 'doufuduoshaoqianyikuai,2kuai,1kuai2kuai,haishi 2kuai1kuai,2kuaiyikuai,nande nachu 1kuai,lai2kuai';

//返回 o字符串从 $str 第一次出现的位置开始到 $str结尾的字符串
var_dump(strstr($str,'o'));
echo '<hr>';

//返回 o字符串从 $str 最后次出现的位置开始到 $str结尾的字符串
var_dump(strrchr($str,'o'));

//寻找字符串中某字符最先出现的位置。默认从 0 开始。
echo strpos($str,'o');//substr($str,strpos($str,'o'),10)
echo '<br>';

//寻找字符串中某字符最后出现的位置。默认从 0 开始。
echo strrpos($str,'o');


9、字符串的替换,三种替换方式


<?php
$str = 'you yi  ge guniang ,zhan zai zhongguancun de tianqiao shang,shouli nazhe 发票,huai lichuai zhe 光盘, wanyao fuzhe langan ,zheng zai bei 警察 jiancha shenti';

//子字符串替换
$hexie = array('发票','光盘','警察');

$replace = array('ak47','C4','高老师');
echo '<hr>';
echo str_replace($hexie,$replace,$str);


10、其他


<?php

$str = 'a';

//将指定字符重复指定次数
echo str_repeat($str,10);
echo '<hr>';

$str = "An example on a  long word is : fslfkasflsfklsfel";

// 打断字符串为指定数量的字串,浏览器没反应?
echo  wordwrap($str,2);
echo '<hr>';

$str = 'ABCDEFabcdef';

//随机打乱字符串
$str2 = str_shuffle($str);
echo substr($str2,0,4);

//要解析的字符床|存储变量的数组名称
//parse_str将字符串解析成多个变量
parse_str("id = 23 &name = john %2 20 Adams",$myArray);
print_r($myArray);
echo '<hr>';
$str = '<script><script><html>abc</html>';

//剥去HTML.XML PHP的标签,看源码的时候,不出现这些标签
var_dump(strip_tags($str));
echo '<hr>';
$str = "Hello ,my name is John Adams";

echo $str;

echo '<hr>';
//addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
echo addcslashes($str,'m');

echo '<hr>';

//获取字符的ASSCII值
echo ord('A');

//从指定的ASSCII值返回字符
echo chr(97);


11、数学数组


<?php
// $n = -1.01;

// // 求绝对值
// echo abs($n);

$n = 1.00000000001;

//进1取整法
echo ceil($n);
echo '<br>';

// 舍去取整法
$n = 1.99999999999;
echo floor($n);
echo '<br>';
$n = 0.1;
echo fmod($n,0.03);


echo '<hr>';
echo pow(2,3);
echo '<hr>';
echo pow(10,3);
echo '<hr>';


$n = 3.1415926;

//四舍五入
echo round($n,3);
echo '<hr>';

//
echo sqrt(16);
echo '<hr>';

//求最大值
$n = array(7,8,1,3,9);
echo max(7,8,1,3,9);

echo '<hr>';
echo rand(0,9);
echo '<hr>';
echo mt_rand(0,9);
echo '<hr>';
echo rand();
echo '<hr>';
echo mt_rand();
echo '<hr>';
echo uniqid("class89_");

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP