无论哪种编程语言,字符串操作都是一个重要的基础,往往简单而重要。PHP为我们提供了大量的字符串操作函数,功能强大,使用也比较简单。在这里结合实例总结分析PHP字符串函数的功能。

  1、addcslashes()

  语法:

  addcslashes(string,characters)

  string:必需。规定要转义的字符串

  characters:必需。规定要转义的字符或字符范围

  功能:

  addcslashes()函数返回在指定字符前添加反斜杠的字符串

  向字符串中的特定字符添加反斜杠

$str = 'Welcome to Shanghai!';
echo $str."<br />";
//Welcome to Shanghai! echo addcslashes($str,'m')."<br />";
//Welco\me to Shanghai! echo addcslashes($str,'H')."<br />";
//Welcome to Shanghai!

  向字符串中的某个范围的字符添加反斜杠

$str = "Welcome to Shanghai!";
echo $str."<br />";
//Welcome to Shanghai! echo addcslashes($str,'A..Z');
//\Welcome to \Shanghai! echo addcslashes($str,'a..z');
//W\e\l\c\o\m\e \t\o S\h\a\n\g\h\a\i! echo addcslashes($str,'a..g');
//W\el\com\e to Sh\an\gh\ai!

  注释:

  • addcslashes()函数对大小写敏感
  • 对一下字符应用addcslashes()时要小心:0(NULL),r(回车符)。在PHP中,\0,\r,\n,\t,\f以及\v是预定义的转义序列

  2、addslashes()

  语法:

  addslashes(string)

  string:必需。规定要转义的字符串

  功能:

  addslashes()函数返回在预定义字符之前添加反斜杠的字符串

  预定义字符是:

  • 单引号(')
  • 双引号(")
  • 反斜杠(\)
  • NULL

  向字符串中的预定义字符添加反斜杠

$str = "Who's Bill Gates?";
echo $str."<br />";
//Who's Bill Gates? echo addslashes($str)."<br />";
//Who\'s Bill Gates?

  注释:

  • 该函数用于为存储在数据库中的字符串以及数据库查询语句准备字符串
  • 默认地,PHP对所有的GET、POST和COOKIE数据自动运行addslashes()。所以您不应该对已转义过的字符串使用addslashes(),因为这样会导致双层转义。遇到这种情况可以使用函数get_magic_quotes_gpc()进行检测。

  3、bin2hex()

  语法:

  bin2hex(string)

  string:必需。要转换的字符串

  功能:

  bin2hex()函数把ASCII字符的字符串转换为十六进制。字符串可通过pack()函数再转换回来。

$str = "Shanghai";
echo bin2hex($str)."<br />";
//5368616e67686169 echo pack("H*",bin2hex($str))."<br />";
//Shanghai

  4、chop()

  语法:

  chop(string,charlist)

  string:必需。规定要检查的字符串

  charlist:可选。规定从字符串中删除哪些字符。如果charlist为空,则移除一下字符:

    “\0” - NULL、“\t” - 制表符、“\n” - 换行符、“\x0b” - 垂直制表符、“\r” - 回车、“ ” - 空格

  功能:

  chop()函数移除字符串右端的空白符或其他预定义字符

  移除字符串右侧的换行符(\n)

$str = "Hello World!\n\n";
echo $str;
echo chop($str);

  上面代码的HTML输出如下(查看源代码)

<html>
<head></head>
<body>
Hello World! Hello World!
</body>
</html>

  从字符串右端移除字符

$str = "Hello World!";
echo $str;
//Hello World! echo chop($str,'World!');
//Hello

  5、chr()

  语法:

  chr(ascii)

  ascii:必需。ASCII值

  功能:

  chr()函数从指定的ASCII值返回字符。ASCII值可以被指定为十进制、八进制或十六进制。八进制值被定义为带前置0,而十六进制值被定义为带前置0x。

  从不同的ASCII值返回字符:

echo chr(61)."<br />";//十进制
//= echo chr(061)."<br />";//八进制
//1 echo chr(0x61)."<br />";//十六进制
//a

  6、chunk_split()

  语法:

  chunk_split(string,length,end)

  string:必需。规定要分割的字符串

  length:可选。数字值,定义字符串块的长度。默认是76

  end:可选。字符串值,定义在每个字符串块末端放置的内容。默认\r\n

  功能:

  chunk_split()函数把字符串分割为一连串更小的部分

  在每个字符后分割一次字符串,并在每个分割后添加“.”

$str = "Shanghai";
echo chunk_split($str,1,'.');
//S.h.a.n.g.h.a.i.

  7、explode()

  语法:

  explode(separator,string,limit)

  separator:必需。规定在哪里分割字符串

  string:必需。要分割的字符串

  limit:可选。规定所返回的数组元素的数目。可能的值:1、大于0 - 返回包含最多limit个元素的数组 2、小于0 - 返回包含除了最后的-limit个元素以外的所有元素的数组 3、0 - 返回包含一个元素的数组

  功能:

  explode()函数把字符串打散为数组

  使用limit参数来返回一些数组:

$str = "one,two,three,four";
echo '<pre>';
print_r(explode(',',$str));
/*
* Array
(
[0] => one
[1] => two
[2] => three
[3] => four
)
*/ print_r(explode(',',$str,0));
/*
* Array
(
[0] => one,two,three,four
)
*/ print_r(explode(',',$str,2));
/*
* Array
(
[0] => one
[1] => two,three,four
)
*/ print_r(explode(',',$str,-1));
/*
* Array
(
[0] => one
[1] => two
[2] => three
)
*/

  8、hex2bin()

  语法:

  hex2bin(string)

  string:必需。要转换的十六进制值

  功能:

  hex2bin()函数把十六进制值的字符串转换为ASCII字符

echo hex2bin("48656c6c6f20576f726c6421");
//Hello World!

  9、implode()

  语法:

  implode(separator,array)

  separator:可选。规定数组元素之间放置的内容。默认是“”(空字符串)

  array:必需。要组合为字符串的数组

  功能:

  implode()函数返回由数组组合成的字符串

$arr = array('Hello','World','I','love','Shanghai!');
echo implode(" ",$arr)."<br />";
//Hello World I love Shanghai! echo implode("+",$arr)."<br />";
//Hello+World+I+love+Shanghai! echo implode("-",$arr)."<br />";
//Hello-World-I-love-Shanghai! echo implode("X",$arr);
//HelloXWorldXIXloveXShanghai!

  10、html_entity_decode()

  语法:

  html_entity_decode(string,flags,character-set)

  string:必需。规定要解码的字符串

  flags:可选。规定如何处理引号以及使用哪种文档类型

  character-set:可选。一个规定了要使用的字符集的字符串

  功能:

  html_entity_decode()函数把HTML实体转化为字符。html_entity_decode()函数是htmlentities()函数的反函数。

  把HTML实体转换为字符:

header("Content-type:text/html;charset=utf-8");
$str = "<© W3CSçh°°¦§>";
echo html_entity_decode($str);
//<© W3CSçh°°¦§>

  把一些HTML实体转换为字符:

$str = "Jane & 'Tarzan'";
echo html_entity_decode($str,ENT_COMPAT)."<br />";//仅解码双引号
//Jane & 'Tarzan' echo html_entity_decode($str,ENT_QUOTES)."<br />";//解码双引号和单引号
//Jane & 'Tarzan' echo html_entity_decode($str,ENT_NOQUOTES);//不解码任何引号
//Jane & 'Tarzan'

  11、htmlentities()

  语法:

  htmlentities(string,flags,character-set,double_encode)

  string:必需。规定要转换的字符串

  flags:可选。规定如何处理引号、无效的编码以及使用哪种文档类型

  character-set:可选。一个规定了要使用的字符集的字符串

  double_encode:可选。一个规定了是否编码已经存在的HTML实体的布尔值

  功能:

  htmlentities()函数把字符转换为HTML实体。

  把一些字符转换为HTML实体:

$str = "<© W3CSçh°°¦§>";
echo htmlentities($str);
//HTML源代码输出 <© W3CSçh°°¦§>gt;

  把一些字符转化为HTML实体:

$str = "Jane & 'Tarzan'";
echo htmlentities($str,ENT_COMPAT)."<br />";//仅编码双引号
//HTMl源代码输出 Jane & 'Tarzan' echo htmlentities($str,ENT_QUOTES)."<br />";//编码双引号和单引号
//HTMl源代码输出 Jane & 'Tarzan' echo htmlentities($str,ENT_NOQUOTES)."<br />";//不编码任何引号
//HTMl源代码输出 Jane & 'Tarzan'

  12、htmlspecialchars_decode()

  语法:

  htmlspecialchars_decode(string,flags)

  string:必需。规定要解码的字符串

  flags:可选。规定如何处理引号以及使用哪种文档类型

  功能:

  htmlspecialchars_decode()函数把一些预定义的HTML实体转换为字符。会被转换的HTML实体是:&amp; - 解码成&(和号)、&quot; - 解码成"(双引号)、' - 解码成'(单引号)、&lt; - 解码成<(小于)、&gt; - 解码成>(大于)。

  把预定义的HTML实体“&lt;”(小于)和“&gt;”(大于)转换为字符:

$str = "This is some <b>bold</b> text.";
echo htmlspecialchars_decode($str);
//HTML源代码输出 This is some <b>bold</b> text.

  把一些预定义的HTML实体转化为字符:

$str = "Jane & 'Tarzan'";
echo htmlspecialchars_decode($str,ENT_COMPAT)."<br />";//默认,仅解码双引号
//HTML源代码输出 Jane & 'Tarzan echo htmlspecialchars_decode($str,ENT_QUOTES)."<br />";//解码双引号和单引号
//HTML源代码输出 Jane & 'Tarzan' echo htmlspecialchars_decode($str,ENT_NOQUOTES)."<br />";//不解码任何引号
//HTML源代码输出 Jane & 'Tarzan'

  13、htmlspecialchars()

  语法:

  htmlspecialchars(string,flags,character-set,double_encode)

  string:必需。规定要转换的字符串

  flags:可选。规定如何处理引号、无效的编码以及使用哪种文档类型

  character-set:可选。一个规定了要使用的字符集的字符串

  double_encode:可选。一个规定了是否存在的HTML实体的布尔值

  功能:

  htmlspecialchars()函数把一些预定义的字符转换为HTML实体。预定义的字符是:& (和号) - 成为‘&amp;’、"(双引号) - 成为“&quot;”、'(单引号) - 成为“'”、<(小于) - 成为“&lt;”、>(大于) - 成为“&gt;”。

  把预定义的字符“<”(小于)和“>”(大于)转换为HTMl实体:

$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
//HTMl源代码输出 This is some <b>bold</b> text.

  把一些预定义字符转化为HTML实体:

$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str,ENT_COMPAT)."<br />";//默认,仅编码双引号
//HTML源代码输出 Jane & 'Tarzan' echo htmlspecialchars($str,ENT_QUOTES)."<br />";//编码双引号和单引号
//HTML源代码输出 Jane & 'Tarzan' echo htmlspecialchars($str,ENT_NOQUOTES)."<br />";//不编码任何引号
//HTML源代码输出 Jane & 'Tarzan'

  

PHP字符串函数大全的更多相关文章

  1. C语言字符串函数大全

    C语言字符串函数大全 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include ...

  2. delphi字符串函数大全

    转帖:delphi字符串函数大全 2009-11-17 16:43:55 分类: delphi字符串函数大全 ━━━━━━━━━━━━━━━━━━━━━首部 function StringToGUID ...

  3. [转]JavaScript字符串函数大全

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  4. mssql 系统函数-字符串函数专题--字符串函数大全

    mssql 系统函数 字符串函数 substring 功能简介 mssql 系统函数 字符串函数 stuff 功能简介 mssql 系统函数 字符串函数 str 功能简介 mssql 系统函数 字符串 ...

  5. c语言字符串函数大全(转)

    函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio. ...

  6. sql server 字符串函数大全

    平常会用到一些函数处理字符串,用的不算频繁,所以每次用到的时候就忘记了,这次在网上找了一篇文档,担心突然某一天这篇文章找不到了,然后就把文章的内容复制了一份: /* 1,ASCII返回字符表达式中最左 ...

  7. JavaScript字符串函数大全

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  8. MS-SQL Server字符串处理函数大全

    MS-SQL Server字符串处理函数大全   select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.Index ...

  9. SQL函数大全(字符串函数).

    SQL Server 2005  函数大全 字符串函数 字符串函数 SubString在SQL和C#中不同, 一,select  substring('abcde',-1,3) select LEN( ...

随机推荐

  1. Eclipse 关闭项目

    Eclipse 关闭项目 为什么要关闭项目? Eclipse 工作空间包含了多个项目.一个项目可以是关闭或开启状态. 项目打开过多影响有: 消耗内存 占用编译时间:在删除项目.class 文件(Cle ...

  2. Java基础 - 强引用、弱引用、软引用、虚引用

    1.强引用(StrongReference) 强引用是使用最普遍的引用. 假设一个对象具有强引用.那垃圾回收器绝不会回收它.例如以下: [java] view plaincopyprint" ...

  3. 使用.NET Reflector 查看Unity引擎里面的DLL文件

    转载标注来源哦! 原地址在这里!在这里. 当你查看unity里面API的时候.是不是有时候追踪了一两步就碰到DLL文件走不下去了呢?非常是不爽吧. 这样的问题我也是常常碰到.这是人家商业引擎不想让你看 ...

  4. 贝叶斯网(2)Netica:从数据中学习CPT

    1. 离散节点 在官方Tutorial中是有详细的案例的,就是B篇3.3节,你可以动手把天气预报这个实现一下: http://www.norsys.com/tutorials/netica/secB/ ...

  5. Digit Division

    Digit Division Time limit: 1 s Memory limit: 512 MiB We are given a sequence of n decimal digits. Th ...

  6. Decimal fixed point and floating point arithmetic

    decimal — Decimal fixed point and floating point arithmetic — Python 3.8.0a0 documentation https://d ...

  7. 解决 request.getInputStream() 只能获取一次body的问题

    问题: 在使用HTTP协议实现应用间接口通信时,服务端读取客户端请求过来的数据,会用到request.getInputStream(),第一次读取的时候可以读取到数据,但是接下来的读取操作都读取不到数 ...

  8. AngularCli项目中添加字体图标(Font)详解

    本文主要讲如何在AngularCli生成的项目中使用字体图标. 一 SVG图标准备 将需要转换为字体图标的图片转换为SVG格式. 这个让项目视觉设计师搞定即可. 二 SVG图标转Font 可以通过Ic ...

  9. Vue表格中时间的处理

    Vue中表格的数据应该来自后台数据库,然后从数据库中读取到的数据,时间格式可能有些不同,我们可以根据实际需要来对这个时间进行转化. 这里介绍一个js库,它提供了强大的日期处理功能,功能强大且只有2k大 ...

  10. Datetime 模块求日期差

    Datetime 模块求日期差 导入 datetime 模块/实例化当前时间对象 调用.date() 方法 得到当前年/月/日时间 实例化时间差对象 delta 求当前日期减去时间差 delta 后的 ...