[TOC]

# 字符串的处理介绍

###### 字符串的处理方式

在C语言中字符串是作为字节数组处理的。在Java语言中字符串是作为对象处理的。而php则把字符串作为基本数据类型来处理。通常对字符串的处理涉及字符串的 *格式化* 。 字符串的 *分割* 和 *连接* 、字符串的 *比较* 、以及字符串的 *查找* 、*匹配* 和 *替换* 。

# 常用的字符串输出函数

常用的输出字符串函数:

`echo( )` -- 输出字符串

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

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

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

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

如:

```

echo 'aaa','bbbb','ccc';//输注多个值

$link=@mysql_connect(“”,””,””)or die(“失败”)

```

###### printf与sprintf

`printf`与`sprintf`都是格式化字串:

字符串转换格式:

%%返回百分比符号

%b二进制数

%c依照ASCII值的字符

%d带符号十进制数

%e 可续计数法(如1.5e3)

%u无符号十进制数

%f或%F 浮点数

%o八进制数

%s字符串

%x或%X 十六进制数

把文字格式化以后输出,如:

```

$name="hunte";

$age=25;

printf("my name is %s, age %d", $name, $age);

```

**说明**:

* 可以在"%"和字母之间插进数字表示最大场宽。

①例如: %3d 表示输出3位整型数, 不够3位右对齐。

②%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。

③%8s 表示输出8个字符的字符串, 不够8个字符右对齐。

④如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

⑤浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;

⑥小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。

⑦若想在输出值前加一些0, 就应在场宽项前加个0。

例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。

⑧如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。

例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。

* 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

①例如: %ld 表示输出long整数

②%lf 表示输出double浮点数

* 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。

①例如: %-7d 表示输出7位整数左对齐

②%-10s 表示输出10个字符左对齐

* 一些特殊规定字符

①\n 换行

②\f 清屏并换页

③\r 回车

④\t Tab符

⑤\xhh 表示一个ASCII码用16进表示,

⑥其中hh是1到2个16进制数

> sprintf函数跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。

# 常用的字符串格式化函数

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

* 函数:`ltrim( ) `

```

语法: string ltrim(string str[, string charlist] );

```

返回值: 字符串

本函数用来删去字符串中的前导空格 (whitespace)。

* 函数:`rtrim( )` (还有个别名:chop()

```

语法: string rtrim(string str[, string charlist] );

```

返回值: 字符串

本函数用来删去字符串中的后缀空格 (whitespace)。

* 函数:`trim( )`

截去字符串首尾的空格。

```

语法: string trim(string str[, string charlist] );

```

返回值: 字符串

本函数返回字符串 string 首尾的空白字符去除后的字串。

* 函数:`str_pad()` 按需求对字符串进行填充。

```

语法:string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )

```

STR_PAD_LEFT 字符串左添补

STR_PAD_RIGHT 字符串右添补

STR_PAD_BOTH 字符串两端添补

```

$input = "Alien";

echo str_pad($input, 10);

// produces "Alien     "

echo str_pad($input, 10, "-=", STR_PAD_LEFT);

// produces "-=-=-Alien"

echo str_pad($input, 10, "_", STR_PAD_BOTH);

// produces "__Alien___"

echo str_pad($input, 6 , "___");

// produces "Alien_“

?>

```

###### 2. 字符串大小写的转换

* 函数: `strtolower( )`

```

语法: string strtolower(string str);

```

本函数将字符串 str 全部变小写字符串。

* 函数: `strtoupper( )`

```

语法: string strtoupper(string str);

```

本函数将字符串 str 全部变大写字符串。

* 函数:`ucfirst( )`

将字符串第一个字符改大写。

```

语法: string ucfirst(string str);

```

本函数返回字符串 str 第一个字的字首字母改成大写。

* 函数:`ucwords( )`

将字符串每个字第一个字母改大写。

```

语法: string ucwords(string str);

```

本函数返回字符串 str 每个字的字首字母全都改成大写。

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

* 函数:`nl2br( )`

```

语法:string nl2br ( string string )

```

将字符串中”\n”转成HTML换行符

* 函数:`htmlspecialchars()`

```

语法:string htmlspecialchars ( string string [, int quote_style [, string charset]] )

```

* 函数: `htmlentities()`

```

语法:string htmlentities ( string string [, int quote_style [, string charset]] )

```

可以将所有的非ASCII码转换成对应实体代码。

```

$str = "A 'quote' is bold";

// Outputs: A 'quote' is bold

echo htmlentities($str);

// Outputs: A 'quote' is bold

echo htmlentities($str, ENT_QUOTES);

?>

```

* 函数:`string strip_tags()`

```

语法:string strip_tags ( string str [, string allowable_tags] )

```

删除HTML的标签函数

```

$text = '

Test paragraph.

Other text';

echo strip_tags($text); //Test paragraph. Other text

// 保留

echo strip_tags($text, '

');

//输出:

Test paragraph.

Other text

?>

```

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

* 函数: `strrev( ) `

颠倒字符串。将字符串前后颠倒。

```

语法: string strrev(string string);

```

* 函数: `strlen( ) `

取得字符串长度。

```

语法: int strlen(string str);

```

本函数返回指定的字符串长度。

* 函数:`number_format()`

```

语法:string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

```

格式货币、数字、时间等。

* 函数:`md5()` 加密函数

```

格式:string md5 (string str [, bool raw_output] )

```

# 字符串比较函数

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

按字节进行字符串的比较

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

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

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

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

`strnatcmp(`);

字符串的模糊比较

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

# 字符串的分割与拼装

* `explode` -- 使用一个字符串分割另一个字符串

```

语法:array explode ( string separator, string string [, int limit] )

```

此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 separator 作为边界点分割出来。如果设置了 limit 参数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。 例如:

```

$pizza  = "piece1 piece2 piece3";

$pieces = explode(" ", $pizza);

echo $pieces[0]; // piece1

echo $pieces[1]; // piece2

```

* `implode()`

用一组较小的字符串创建一个大字符串。

```

格式:string implode ( string glue, array pieces )

```

第一个参数glue是放在第二个参数pieces的元素之间的字符串。可以像下面这样重建简单的逗号分隔的字符串。

例如:

```

$array = array('lastname','email','phone');

$comma_separated = implode(',', $array);

echo $comma_separated;

//lastname,email,phone

```

# 字符串的截取

* 函数:`substr( ) `

取部份字符串。

```

语法: string substr(string string, int start, int [length]);

```

返回值: 字符串

本函数将字符串 string 的第 start 位起的字符串取出 length 个字符,若省略参数 length,则取到字符串末尾 。若 start 为负数,则从字符串尾端往前开始提取。如果length为整数,表示返回length个字符,若为负数,则表示取到倒数第 length 个字符。

# 字符串的查找:

* 函数: `strstr( )` 别名:`strchr( ) `

返回字符串中某字符串开始处至结束的字符串。

```

语法: string strstr(string haystack, string needle);

```

返回值: 字符串

本函数将 needle 最先出现在 haystack 处起至 haystack 结束的字符串返回。若找不到 needle 则返回 false。

* 函数: `strrchr()`

取得某字符最后出现的位置。

```

语法: string strrchr(string haystack, string needle);

```

本函数用来寻找字符串 haystack 中的字符 needle 最后出现位置,并将此位置起至字符串 haystack 结束之间的字符串返回。若没有找到 needle 则返回 false。

* 函数:`strpos() `

寻找字符串中某字符最先出现的位置。默认从 0 开始。

```

语法: int strpos(string haystack, string needle, int [offset]);

```

本函数用来寻找字符串 haystack 中的字符 needle 最先出现的位置。若找不到指定的字符,则返回 false 值。参数 offset 可省略,用来表示从 offset 开始找。

* 函数:`strrpos( ) `

寻找字符串中某字符最后出现的位置。

```

语法: int strrpos(string haystack, char needle);

```

返回值: 整数

本函数用来寻找字符串 haystack 中的字符 needle 最后出现的位置。若找不到指定的字符,则返回 false 值。

# 字符串的替换

`str_replace()`

字符串替换,三种替换方式

```

str_replace(string $search, string $replace, string $str);

str_replace(array $search, string $replace, string $str);

str_replace(array $search, array $replace, string $str);

```

> Have a Try

1. 自定义一个函数:string getFileType(String $name); 求一个文件的后缀名

例如:调用时传入一个文件名的字串如:”a.txt”,哪个返回结果为”.txt”;

2. 使用字串函数按要求输出结果:

a)将102这个数字分别以以二进制、八进制、十六进制输出

b)将12.123乘以2后保留小数位两位输出。

c)将字串#1024*两侧的*号与#号去除后输出。

d)将字串strtoupper传化成大写后倒叙输出。

e)将字串

f)将10:20:30:40:50中:号换成,号

3. 做一个网站访问的计数器。在网页中输出:网站访问:1253次,而且每次刷新数量都加一。(提示:采用文本存放计数信息)。

4. 定义一个字串的大小写转换函数: (可参考:chr( )和ord( ))

tp6字符串解析为HTML,6.字符串 · ThinkPHP5从入门到努力之入门实践 · 看云相关推荐

  1. php5从数组取值,5.数组 · ThinkPHP5从入门到努力之入门实践 · 看云

    [TOC] # 数组的概述 PHP 中的数组实际上是一个有序图.图是一种把 values 映射到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表( ...

  2. 实现迷你解析器把字符串解析成NestInteger类 Mini Parser

    为什么80%的码农都做不了架构师?>>>    问题: Given a nested list of integers represented as a string, implem ...

  3. java 字符串解析

    StringTokenizer tokenizer = new StringTokenizer(number, ",");         boolean bool = true; ...

  4. 字符串不替代_使用第三方库demjson解析不规范的json字符串

    Json在编程中是一种轻量级的文件格式,在本地开发或者web开发中使用较多.JSON(JavaScript Object Notation,JavaScript对象表示法,读作/ˈdʒeɪsən/)是 ...

  5. javascript解析json格式的字符串,拼接后显示到表格中

    知识点 解析json格式的字符串 拼接的HTML设置到tbody当中 加载json格式的对象 结果演示 html代码 <!DOCTYPE html> <html><hea ...

  6. C#将json字符串解析成对象

    首先我们在客户端生成json字符串,通过ajax把该字符串传到服务器端 //这是一个以id,email,age的json字符串 var jdata="[{\"id\":0 ...

  7. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  8. as3转换为html5,AS3和HTML5 - 使用正则表达式将字符串解析为数组

    我一直在寻找和使用RegEx一段时间,并试图找到我可以应用于AS3和HTML5的解决方案.AS3和HTML5 - 使用正则表达式将字符串解析为数组 我有一个自定义用户输入部分,256个字符,他们可以自 ...

  9. 解析JavaScript中的字符串类型与字符编码支持

    JavaScript中的字符串也像Python那样支持反斜杠的转移,并且字符集方面默认为Unicode,下面就来详细解析JavaScript中的字符串类型与字符编码支持 定义 字符串就是零个或多个排在 ...

最新文章

  1. python检查URL是否能正常访问
  2. 苏宁大调整中的三个关键
  3. CSS3的绝对定位与相对定位
  4. SAP CRM呼叫中心里Case ID的生成逻辑
  5. python的xpath用法_Python爬虫杂记 - Xpath高级用法
  6. 《苹果》何以成禁果?
  7. 3gpp协议_3GPP都在干什么(16)?:3GPP中网络切片原理及协议解读
  8. RFID技术在物联网中有哪些应用
  9. Hibernate入门简介----张冬
  10. 基于决策树的高层次语义图像检索
  11. JS-BFA算法及ui实现
  12. 跨境电商如何做好引流?做亚马逊速卖通独立站的看过来
  13. A Framework for Multi-stage Bonus Allocation in meal delivery Platform
  14. html 表格,列表,表单,select和下拉选框,textarea多行文本域,label关联控件,表单,浮动框架,结构化标签
  15. 类中无错误显示,但类名出线红色波浪线
  16. 智慧能源篇 1 —— 合同能源管理(EMC)及其商业模式和税收优惠政策
  17. linux 命令查询主机名,linux如何查看主机名?
  18. 在pycharm的同路径下import .py文件报红问题
  19. 就业指导——自我介绍与个人简历
  20. excel拆分表格如何快速完成?

热门文章

  1. 【Codeforces】1665E MinimizOR 题解
  2. NOJ——1665夜神的思考(YY+组合问题+分类讨论)
  3. android源码编译出现No private recovery resources for TARGET_DEVICE解决方法
  4. 轮询查找连接电脑设备IP地址
  5. 【GlobalMapper精品教程】027:路径剖面和和视线工具的使用
  6. matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45
  7. Apache htaccess 重写如果文件存在!
  8. hp打印机没连上计算机,win7电脑连接惠普打印机后文件打印不出来怎么办
  9. 音视频的相关名词、术语、概念
  10. DataFrame.to_excel多次写入不同Sheet