PHP学习系列(1)——字符串处理函数(5)

时间:2024-09-09 09:08:02

31、ord() 函数返回字符串第一个字符的 ASCII 值。

语法:ord(string)

例子

<?php
echo ord("h");
echo ord("hello");
?>

输出:

104
104

32、parse_str() 函数把查询字符串解析到变量中。

语法:parse_str(string,array)

array——可选。规定存储变量的数组名称。该参数指示变量存储到数组中。

说明:如果未设置 array 参数,由该函数设置的变量将覆盖已由同名变量。php.ini 中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被addslashes()转换。

例子

例子 1
<?php
parse_str("id=23&name=John%20Adams");
echo $id."<br />";
echo $name;
?>

输出:

23
John Adams
例子 2
<?php
parse_str("id=23&name=John%20Adams",$myArray);
print_r($myArray);
?>

输出:

Array
(
[id] => 23
[name] => John Adams
)

 

33、print() 函数输出一个或多个字符串

说明:print() 函数实际上不是函数,所以您不必对它使用括号。print() 函数稍慢于 echo(),因为它需要返回1。

34、printf() 函数输出格式化的字符串。

printf(format,arg1,arg2,arg++)

format——必需。规定字符串以及如何格式化其中的变量。

arg1——必需。规定插到格式化字符串中第一个 % 符号处的参数。

arg2——可选。规定插到格式化字符串中第二个 % 符号处的参数。

arg++——可选。规定插到格式化字符串中第三、四等等 % 符号处的参数。

说明:arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

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

语法:quotemeta(string)

这些预定义字符是:

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

区别于addslashes() 函数,它转义的预定义字符是

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

36、setlocale() 函数设置地区信息(地域信息)。地区信息是针对一个地理区域的语言、货币、时间以及其他信息。该函数返回当前的地区设置,若失败则返回 false。

语法:setlocale(constant,location)

constant——必需。规定应该设置什么地区信息。

可用的常量:

  • LC_ALL - 包括下面的所有选项
  • LC_COLLATE -排序次序
  • LC_CTYPE - 字符类别及转换(例如所有字符大写或小写)
  • LC_MESSAGES - 系统消息格式
  • LC_MONETARY - 货币格式
  • LC_NUMERIC - 数字格式
  • LC_TIME - 日期/时间格式

location——必需。规定把地区信息设置为什么国家/地区。如果 location 参数是数组,setlocale() 会尝试每个数组元素,直到找到合法的语言或地区代码为止。如果某个地区在不同的系统上拥有不同的名称,这一点很有用。

提示:setlocale() 函数仅针对当前脚本改变地区信息。可以通过 setlocale(LC_ALL,NULL) 把地区信息设置为系统默认。

例子

在本例中,我们将把 locale 设置为 US English,然后再设置回系统默认:

<?php
echo setlocale(LC_ALL,"En-Us");
echo setlocale(LC_ALL,NULL);
?>

37、sha1() 函数计算字符串的 SHA-1 散列。sha1() 函数使用美国 Secure Hash 算法 1。如果成功,则返回所计算的 SHA-1 散列,如果失败,则返回 false。

语法:sha1(string,raw)

raw——可选。规定十六进制或二进制输出格式:TRUE - 原始 20 字符二进制格式 ;FALSE - 默认。40 字符十六进制数;注释:该参数是 PHP 5.0 中添加的。

例子 1
<?php
$str = 'Hello';
echo sha1($str);
?>

输出:

f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0

 

38、ha1_file() 函数计算文件的 SHA-1 散列。

语法:sha1_file(string,raw)

39、similar_text() 函数计算两个字符串的匹配字符的数目。该函数也可以计算两个字符串的相似度(以百分比计)。

语法:similar_text(string1,string2,percent)

string1——必需。规定要比较的第一个字符串。

string2——必需。规定要比较的第二个字符串。

percent——可选。规定供存储百分比相似度的变量名。

注释:levenshtein() 函数比 similar_text() 函数更快。不过,similar_text() 函数通过更少的必需修改次数提供更精确的结果。

例子

例子 1
<?php
echo similar_text("Hello World","Hello Peter");
?>

输出:

7
例子 2
<?php
similar_text("Hello World","Hello Peter",$percent);
echo $percent;
?>

输出:

63.6363636364

39、sprintf() 函数把格式化的字符串写入一个变量中。

例子 1
<?php
$str = "Hello";
$number = 123;
$txt = sprintf("%s world. Day number %u",$str,$number);
echo $txt;
?>

输出:

Hello world. Day number 123

 

40、scanf() 函数根据指定的格式解析来自一个字符串的输入。

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

语法:sscanf(string,format,arg1,arg2,arg++)

string——必需。规定要读取的字符串。

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

arg1——可选。存储数据的第一个变量。

arg2——可选。存储数据的第二个变量。

arg++——可选。存储数据的第三、四个变量。依此类推。

参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束。下面的可能的 format 值:
  • %% - 返回百分比符号
  • %b - 二进制数
  • %c - 依照 ASCII 值的字符
  • %d - 带符号十进制数
  • %e - 可续计数法(比如 1.5e+3)
  • %u - 无符号十进制数
  • %f - 浮点数(local settings aware)
  • %F - 浮点数(not local settings aware)
  • %o - 八进制数
  • %s - 字符串
  • %x - 十六进制数(小写字母)
  • %X - 十六进制数(大写字母)

例子

<?php
$string = "age:30 weight:60kg";
sscanf($string,"age:%d weight:%dkg",$age,$weight);
// show types and values
var_dump($age,$weight);
?>

输出:

int(30)
int(60)