您的位置:首页 > 编程语言 > PHP开发

php学习笔记(六)字符串

2012-08-08 15:29 316 查看
字符串常用的处理技术包括转义,还原字符串,获取字符串长度,截取字符串,合成字符串。合成字符串,分割字符串,替换字符串,检索字符串,去除字符串中的空白和特殊字符,字符串与html转换等。

我们可以完成如下任务:

1.自定义函数的字符串函数结合,完成超长文本的分页输出;

2.对查询的关键字进行描红;

3.购物车中数据的读取;

数据储存在session中

6.2转义,还原字符串
将数据插入到数据库中时可能引起一些问题,比如出现错误或则乱码等,这是因为数据库将传入的数据中的字符解释成控制符。针对这样的问题,我们需要对特殊的字符进行转义。

手动转义,还原字符数据,另一种是自动转义,还原字符串数据,这还可以应用php

提供的addslashes()函数和stripslashes()函数来实现。

Addslashes()加入斜线“\”,然后对指定字符串中的字符进行转义。

(1)String addcslahes(string str,string charlist);

Charlist指定在字符串中的哪些字符前加上“\”

(2)stripcslashes(stringstr)

它可以进行转义的字符包括“ ' ”,“ " ”,反斜线“\”,NULL字符“0”;

Eg:
<?php
$str = "select * from tb_bookwhere bookename='PHP编程宝典'";
$a = addslashes($str);
echo $a."<br>";
$b=stripcslashes($a);
echo $b."<br>";
?>;
Eg结果:
select *from tb_book where bookename=\'PHP编程宝典\'

select * from tb_book where bookename='PHP编程宝典'

6.3截取字符串
(1).在php中对字符串进行截取应用substr()函数,对字符串截取的最常用的方法了。

Substr()函数从字符串中按照指定位置截取一定长度的字符。
String substr(string str,int start[,intlength]);
如果参数start为负数:则从字符串的末尾开始截取。
Length为可选项,用于指定截取字符的个数,如果length为负数,则表示取到倒数第length个length个字符。

Eg:
<?php
$str = "中南大学信息科学与工程学院计算机科学与技术";
echo substr($str,0,-3);
?>;
Eg结果:
中南大学信息科学与工程学院计算机科学与�;
Substr()函数截取中参数的指定位置是从0开始计算的,即字符串中的第一个字符表示0;
(2).应用strlen()函数获取字符串长度。
汉字占两个字符,数字,英文,小数点,下画线和空格占一个字符。
使用strlen()函数还可以检测字符串长度。

6.4分割,合成字符串
通过一“@”作为分割的标示符进行拆分,网站购物时将商品字符串分割成N个数组元素,最后输出。
字符串的分割使用explode()函数,他按照指定的规则对一个字符串进行分割,返回值为数组。
array explode(string separator,string str,[intlimit]);

参数
说明
separator
Separator()为分隔符,如果分隔符为空,返回false.
str
指定将要被分割的字符串
limit
可选参数,如果设置limit参数,则返回的数组中最多包含limit个元素,而最后的元素将包含的剩余部分。如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素。
如何将数组中的元素合成字符串
String implode(stringglue,array pieces)
Glue是字符串类型,用于指定分隔符。参数piece是数组类型。
Eg:
<?php
$str = '中南大学*信息科学与工程学院*计算机科学与技术';
$array = explode("*",$str);
$str_arr = implode("@",$array);
echo $str_arr;
?>;
Eg结果:
中南大学@信息科学与工程学院@计算机科学与技术;
6.5替换字符串
Php提供的str_ireplace()函数和substr_replace()函数来实现字符串的替换功能。

6.5.1 str_ireplace()函数

(1).Str_ireplace函数使用新的子字符串替换原始字符串中被指定要替换的字符串。

本函数不区分大小写,如果需要对大小写加以区分,可以使用str_replace()函数

Mixed str_ireplace(mixed search,mixedreplace,mixed subject[,int &count]);

参数

说明

seatch

指定需要查找的字符串

replace

指定替换的值

subject

指定查找范围

count

可选参数,获取执行替换的数量

<?php
$str = "中南大学*信息科学与工程学院*计算机科学与技术";
echo str_ireplace("中南大学","csu",$str);
?>;
Eg结果:
csu*信息科学与工程学院*计算机科学与技术;
(2).substr_replace()函数
Substr_replace(string str,string repl,int start,[int length]);
参数
说明
str
指定要操作的原始字符串
repl
指定替换后的新字符串
start
指定字符串的开始位置,正数表示其实位置从字符串开头开始,负数表示从结尾开始,0表示从起始位置开始。
length
可选参数,返回字符串的长度。
6.6检索字符串
(1).Strstr()函数,从首次出现的位置开始查找,区分大小写;
(2).Strrchr()函数,从最后一次出现的位置开始查找,区分大小写;
(3).Stripos()函数指定查找符(A)在另一个字符串(B)首次出现的位置;
(4).Strripos()函数查找指定字符串在另一字符串中最后一次出现的位置。不区分大小写。
Strrpos()区分大小写。
可以以用来判断上传图片格式是否正确;
substr_conut()函数。
6.6.2 substr_count()函数
()
Int substr_count(string haystack,string needle);
Haystack是指定的字符串;
参数needle为指定的字串。

6.7去除字符串中空白字符和特殊字符
(1).ltrim()去除字符串左边的空白字符和特殊字符。
(2).rtrim()去除字符串右边的空白字符和特殊字符。
空白字符包括("\0","\t","\n","\x0B","\r","");
Stringltrim(string str[,string charlist]);
(3).trim()函数
trim()用于去除字符串开始位置和结束位置的空白字符,并返回去掉空白字符后的字符串。
Eg:
<?php
$str = " \r\r(:@_@中南大学*信息科学与工程学院*计算机科学与技术 @_@:)";
echo $str;
echo "<br>";
echo trim($str,"\r\r(:@_@ @_@:)");
echo "<br>";
?>;
Eg结果:
(:@_@中南大学*信息科学与工程学院*计算机科学与技术 @_@:)

中南大学*信息科学与工程学院*计算机科学与技术

6.8字符串与html转换
字符串与HTML之间的转换可以直接将源代码在网页中输出,而不被执行。

htmlentities()函数完成。

String_htmlentities(sting sting,[int quote_style],[string charset]);

参数

说明

string

指定要转换的字符串

quote_style

可选参数,选择如何处理字符串中的引号,

string charset

可选参数,确认转换所使用的字符集,指定字符集就能够避免转换中文字符出现乱码的问题;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: