PHP字符串函数(4)

1. parse_str() 函数把查询字符串解析到变量中

parse_str(string,array)

如果未设置 array 参数,则由该函数设置的变量将覆盖已存在的同名变量。

php.ini 文件中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。

parse_str("name=Bill&age=60",$arr);
print_r($arr);

parse_str("name=Bill&age=60");
echo $name."<br>";
echo $age;

2. quoted_printable_decode() 对经过 quoted-printable 编码后的字符串进行解码,返回 8 位的 ASCII 字符串

quoted_printable_encode() 函数把 8 位字符串转换为 quoted-printable 字符串。

经过 quoted-printable 编码后的数据与通过邮件传输进行修改的不一样。完全 US-ASCII 的文本可进行 quoted-printable 编码,以确保通过文字翻译或线包网关进行消息传递时数据的完整性。

3. 

quotemeta() 函数在字符串中某些预定义的字符前添加反斜杠。

预定义的字符:

  • 句号(.)
  • 反斜杠(\)
  • 加号(+)
  • 星号(*)
  • 问号(?)
  • 方括号([])
  • 脱字号(^)
  • 美元符号($)
  • 圆括号(())

该函数可用于转义拥有特殊意义的字符,比如 SQL 中的 ( )、[ ] 以及 * 。

4. sscanf() 函数根据指定的格式解析来自字符串的输入。 sscanf() 函数基于格式字符串向变量中解析字符串

如果只向该函数传递两个参数,数据将以数组的形式返回。否则,如果传递了额外的参数,则被解析的数据会存储在这些参数中。如果区分符的数目大于包含它们的变量的数目,则会发生错误。不过,如果区分符的数目小于包含它们的变量的数目,则额外的变量包含 NULL。

sscanf(string,format,arg1,arg2,arg++)

format

必需。规定要使用的格式。

可能的格式值:

  • %% - 返回一个百分号 %
  • %c - ASCII 值对应的字符
  • %d - 包含正负号的十进制数(负数、0、正数)
  • %e - 使用小写的科学计数法(例如 1.2e+2)
  • %u - 不包含正负号的十进制数(大于等于 0)
  • %f - 浮点数
  • %o - 八进制数
  • %s - 字符串
  • %x - 十六进制数(小写字母)
  • %X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
  • ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
  • - (左调整变量值)
  • [0-9] (规定变量值的最小宽度)
  • .[0-9] (规定小数位数或最大字符串长度)
$str = "age:30 weight:60kg";
sscanf($str, "age:%d weight:%dkg",$age,$weight);
// 显示类型和值
var_dump($age,$weight);

5. str_getcsv() 函数解析 CSV 格式字段的字符串,并返回包含所读取字段的数组。

str_getcsv(string,separator,enclosure,escape)

separator可选。字符,规定字段分隔符(只允许一个字符)。默认值为逗号( , )。

enclosure可选。字符,规定字段包裹字符。默认值为双引号( " )。

escape可选。字符,规定转义字符。默认为反斜线(\)。

以数组形式返回 CSV 字段。

$str = '"a","b","c","d"';
print_r(str_getcsv($str));
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

6. str_ireplace() 函数替换字符串中的一些字符(不区分大小写)

str_ireplace(find,replace,string,count)

find必需。规定要查找的值。

replace必需。规定替换 find 中的值的值。

string必需。规定被搜索的字符串。

count可选。一个变量,对替换数进行计数。

该函数必须遵循下列规则:

  • 如果搜索的字符串是一个数组,那么它将返回一个数组。
  • 如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。
  • 如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
  • 如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作用。

返回带有替换值的字符串或数组。

7. str_pad() 函数把字符串填充为新的长度

str_pad(string,length,pad_string,pad_type)

string必需。规定要填充的字符串。

length必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。

pad_string可选。规定供填充使用的字符串。默认是空白。

pad_type可选。规定填充字符串的哪边。

可能的值:

  • STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
  • STR_PAD_LEFT - 填充字符串的左侧。
  • STR_PAD_RIGHT - 填充字符串的右侧。默认。

8. str_repeat() 函数把字符串重复指定的次数

9. str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)

10. str_rot13() 函数对字符串执行 ROT13 编码

ROT13 编码把每一个字母在字母表中向前移动 13 个字母。数字和非字母字符保持不变

编码和解码都是由相同的函数完成的。如果您把已编码的字符串作为参数,那么将返回原始字符串。

echo str_rot13("I love Shanghai");
echo "<br>";
echo str_rot13("V ybir Funatunv");
V ybir Funatunv
I love Shanghai

11. str_shuffle() 函数随机打乱字符串中的所有字符

$str = "abcdefgh";//八位数及以下,有随机性,大于之后数字没随机性了,$i变成了一个固定的数,不知道为啥。
$rand = str_shuffle($str);

echo $rand;
echo "<br/>";
$i = 0;
while ($rand != ($temp = str_shuffle($str))) {
	$i++;
}
echo $temp;
echo "<br/>";
echo $i;

12. str_split() 函数把字符串分割到数组中

str_split(string,length)

length默认是1.每个数组元素的长度

13. str_word_count() 函数计算字符串中的单词数

str_word_count(string,return,char)

return可选。规定 str_word_count() 函数的返回值。

可能的值:

  • 0 - 默认。返回找到的单词的数目。
  • 1 - 返回包含字符串中的单词的数组。
  • 2 - 返回一个数组,其中的键名是单词在字符串中的位置,键值是实际的单词。

可选。规定被视为单词的特殊字符。

echo (str_word_count("I love Shanghai!",0))."<br/>";
print_r(str_word_count("I love Shanghai!",1));
print_r(str_word_count("I love Shanghai!",2));
3
Array ( [0] => I [1] => love [2] => Shanghai ) Array ( [0] => I [2] => love [7] => Shanghai )

 

posted @ 2016-02-25 11:36  sundong_wyz  阅读(414)  评论(0编辑  收藏  举报