资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

PHP的字符串函数-创新互联

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

    创新互联建站自成立以来,一直致力于为企业提供从网站策划、网站设计、成都网站制作、网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
  2. 常用的字符串格式化函数

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

    2. 字符串大小写的转换

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

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

  3. 字符串比较函数

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

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

一、常用的字符串输出函数
  • echo( )  -- 输出字符串

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

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

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

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

echo、print、print_r、var_dump

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

echo '
';

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

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

printf 和 sprintf 都是格式化字符串

//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 '


';
$str = sprintf($format,'今年是2014年,今天是8月7日','13abc','3.1415abc');
//sprintf 返回的是string类型
var_dump($str);
echo '
';

echo $str;

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

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

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


';

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

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

$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();

//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、字符串大小写的转换

$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换行符“
”,只有在浏览器中查看源码的时候才可以看到标签

$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换行符“


$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.

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!"

转换成HTML字符实体

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

$html = 'han××× "我的名字叫韩梅梅,你叫什么名字?" "我叫兄弟!"';
echo $html;
echo '


';


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

$chars = '男人们的世界';

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

结果:

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


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


男人们的世界


浏览器源码:

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




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

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

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

$str = 'abc';

//剥去 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();

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

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

四舍五入number_format();

$str = '1024.15926';
echo $str;
echo number_format($str);
echo '


';

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

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

结果:

1024.159261,024


1,024.16


1$024&16

加密md5

$str = '';
echo md5($str);
echo '


';
$str = '123456';
echo md5($str);
echo '
';
$str = 123456;
echo md5($str)

结果:

d41d8cd98f00b204e9800998ecf8427e


e10adc3949ba59abbe56e057f20f883e


e10adc3949ba59abbe56e057f20f883e

三、字符串比较函数

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

按字节进行字符串的比较

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

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

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

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

  • strnatcmp();

字符串的模糊比较

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

$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、字符串的分割与拼装

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

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

echo '

';
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、字符串的截取

$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、字符串的查找

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

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


';

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

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

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

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

$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 '


';
echo str_replace($hexie,$replace,$str);

10、其他


$str = 'a';

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


';

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

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

$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 '
';
$str = '