JAVA中自己写的util中的chop,第4章 字符串操作和正则表达式

我们将讨论如何使用PHP的字符串函数格式化和操作文本。我们还将介绍使用字符串函数或正则表达式来搜索(或替换)单词、短语或字符串中的其他模式。

本章,我们主要介绍:

字符串的格式化

字符串的连接和分割

字符串的比较

使用字符串函数匹配和替换子字符串

使用正则表达式

4.1 创建一个示例应用程序:智能表单邮件。

建立顾客意见反馈表单,但是并不将表达全部内容发送邮件。而是加入一些智能处理,例如,在输入信息中查找一些关键词和短语,然后才将其发送。

mail函数原型:

bool mail(string to, string subject, string message, [string additional_headers[, string additional_paramoters]]);

前三个是必须的,第四个参数可以用来发送任何额外的、有效的邮件头。如果想了解其详细信息,可以通过在线方式查看。

这里我们通过第四个参数给邮件添加了一个“From:”地址。也可以用它添加“Relay-To:”和“Cc:”域等。

第五个参数可以向任何经过配置用来发送电子邮件的程序传递参数。

为了使用mail()函数,必须将PHP设置为指向邮件发送程序。

4.2 字符串的格式化

通常,在使用用户输入的字符串之前,必须对它们进行整理。

4.2.1 字符串的整理:chop()、ltrim()和trim()

通常,应该使用一些函数(例如isset())来检查用户是否已经填写了所有要求的表单域。为了简化,本例省略。

整理字符串的第一步是清理字符串中多余的空格。

trim()函数可以去除字符串开始位置和结束位置的空格,并将结果字符串返回。

除去的字符是换行符和回车符(\n和\r)、水平和垂直制表符(\t和\x0B)、字符串结束符(\0)和空格。

除了这些默认的过滤字符列表外,也可以在该函数的第二个参数中提供要过滤的特殊字符。

trim()除去这个字符串前后的空格、ltrim()只从字符串的左边除去空格,rtrim()只从字符串的右边除去空格

4.2.2 格式化字符串以便显示

1.使用HTML格式化:nl2br()函数

将字符串作为输入参数,用XHTML中的
标记代替字符串中的换行符。

请记住,HTML将忽略纯空格,所以如果不使用nl2br函数来过滤这个输出结果,那么它看上去就是单独的一行。

2.为打印输出而格式化字符串

PHP支持print()结构,功能和echo相同,不过它返回true或者false。

printf()和sprintf(),还可以实现一些更复杂的格式。

printf将一个格式化的字符串输出到浏览器中,而sprintf是返回一个格式化了的字符串。

string sprintf(string format [, mixed args ...])

void printf(string format [, mixed args...])

使用echo时,可以这样:

echo "total amout of order is $total.";

使用printf时,需要:

printf("total amout of order is %s", $total);

格式化字符串中%s是转换说明。就是“用一个字符串代替”。

printf的优点在于,可以使用有用的转换说明来指定$total为一个浮点数,它的小数点后面应该有两位小数,如下:

printf("total amout of order is %.2f", $total);

这样12.4 就会被打印成12.40;

可以在格式化字符串中使用多个转换说明,n个转换说明,n个参数。

printf()函数优点在于可以格式化输出!

格式如下:%['padding_character][-][width][.precision]type

所有的转换说明都是以%开始,如果想打印一个%符号,必须用%%.

参数'padding_character是可选.它将被用来填充变量直至所指定的宽度.该参数的作用就在变量前面填充.默认的填充字符是一个空格,如果指定0或者空格,就不需要 ' 单引号作为前缀,其他字符就必须指定 ' 作为前缀.

参数 - 是可选.它指左对齐,默认是右对齐.

参数width是指被替换的变量的长度.

参数precision表示以小数点开始.它指明小数点后要显示的位数.

参数type 是类型码.

请看下表:

类型   |   含义

b       |    解释为整数并作为二进制输出.

c        |    解释为整数并作为字符表示输出(ASCII码).

d        |   解释为整数并作为整数输出.

f         |   解释为双精度并作为浮点数输出.

o        |   解释为整数并作为八进制数输出.

s        |   解释为字符串并为字符串输出.

u        |   解释为整数并作为非指定小数输出.

x        |    解释为整数并作为带有小写字母a-f的十六进制数输出

X       |   解释为整数并作为带有大写字母A-F的十六进制数输出

eg:

printf("the num is %'a8.2f", 1.234);

输出结果:

the num is aaaa1.23

当在类型转换代码中使用printf()函数时,你可以使用带序号的参数方式,这就意味着参数的顺序并不一定要与转换说明中的顺序相同。

例如:

printf("total amount of orders is %2\$.2f (with shipping %1\$.2f)", 1.234, 2.567);

输出结果:

total amount of orders is 2.57 (with shipping 1.23)

只要直接在“%”符号后添加参数的位置,并且以$符号为结束,这个方法也可以在重复参数中使用。

3.改变字符串中的字母大小写

字符串大小写函数和它们的效果

$str = "student";

// 将字符串转换成大写

echo strtoupper($str)."
";

$str2= "GOOD";

// 将字符串转换成小写

echo strtolower($str2)."
";

$str3 = "a123";

// 如果字符串的第一个字符是字母,就将该字符转换为大写;

echo ucfirst($str3)."
";

$str4 = "good good study, day day up";

// 将字符串每个单词的第一个字母转换为大写;

echo ucwords($str4)."
";

输出结果是:

STUDENT

good

A123

Good Good Study, Day Day Up

4.2.3 格式化字符串以便存储:addslashes()和stripeslashes()

除了使用字符串函数来重新格式化一个可见的字符串之外,也可以使用其中的一些函数来重新格式化字符串,以便将其存入数据库。

对于字符串来说,某些字符肯定是有效的,但是将数据插入到数据库中的时候可能会引起一些问题,因为数据库会将这些字符解释成控制符。这些有问题的字符就是引号(单引号双引号)、反斜扛(\)和NULL字符。

为了让数据库能够知道这些字符是有实际意义的特殊文本字符,而不是控制序列。可以进行转义处理,在它们前面加一个反斜杠。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值