PHP 字符串函数

时间:2024-11-12 21:06:20

字符串是字符序列,比如 "Hello world!"。

PHP 字符串函数

在本节中,我们将学习常用的字符串操作函数。

PHP strlen() 函数

strlen() 函数返回字符串的长度,以字符计。

下例返回字符串 "Hello world!" 的长度:

实例

<?php
echo strlen("Hello world!");
?>

运行实例

以上代码的输出是:12

提示:strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环)。

PHP strpos() 函数

strpos() 函数用于检索字符串内指定的字符或文本。

如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。

下例检索字符串 "Hello world!" 中的文本 "world":

实例

<?php
echo strpos("Hello world!","world");
?>

运行实例

以上代码的输出是:6。

提示:上例中字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。

PHP addcslashes()函数

定义和用法
addcslashes() 函数在指定的字符前添加反斜杠。
语法
addcslashes(string,characters)
参数 描述
string 必需。规定要检查的字符串。
characters 可选。规定受 addcslashes() 影响的字符或字符范围。
提示和注释
注释:在对 0,r,n 和 t 应用 addcslashes() 时要小心。在 PHP 中,\0,\r,\n 和 \t 是预定义的转义序列。
例子 1

$str = "Hello World!";
echo $str;
$str = addcslashes($str, 'a..z');
$str = addcslashes($str, 'A..Z');
echo "</br>";
echo $str;

Hello World!
\H\e\l\l\o \W\o\r\l\d!

PHP addslashes() 函数

定义和用法
addslashes() 函数在指定的预定义字符前添加反斜杠。
这些预定义字符是:
单引号 (')
双引号 (")
反斜杠 (\)
NULL
语法
addslashes(string)
参数 描述
string 必需。规定要检查的字符串。
提示和注释
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。
注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。
不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。
遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

<?php
$str = "I'm myall";
echo addslashes($str);
?>

PHP bin2hex() 函数

PHP String 函数
定义和用法
bin2hex() 函数把 ASCII 字符的字符串转换为十六进制值。
语法
bin2hex(string)
参数 描述
string 必需。规定要转换的字符串。

<?php
$str = "myall";
echo bin2hex($str);
echo pack("H*",bin2hex($str));
?>

其他相关函数:

echo chr(48); //0 chr()函数从指定的ASCII值返回字符。
echo "<br>";
$str = "myall";
echo chunk_split($str,1,"."); //m.y.a.l.l. chunk_split() 函数把字符串分割为一连串更小的部分。
echo "<br>";
echo convert_uuencode("myall"); //%;7EA;&P` ` convert_uuencode()函数使用uuencode算法对字符串进行编码。
echo "<br>";
echo convert_uudecode(convert_uuencode("myall")); //myall convert_uudecode()函数对uuencode编码的字符串进行解码。
echo "<br>";
print_r(count_chars("myall",1)); //Array ( [97] => 1 [108] => 2 [109] => 1 [121] => 1 )
echo "<br>";
print_r(count_chars("myall",3)); //almy count_chars() 函数返回字符串所用字符的信息。
echo "<br>";
/*
fprintf() 函数把格式化的字符串写到指定的输出流(例如:文件或数据库)。
该函数返回被写字符串的长度。
语法
fprintf(stream,format,arg1,arg2,arg++)
参数 描述
stream 可选。规定在哪里写/输出字符串。
format 必需。转换格式。
arg1 必需。规定插到 format 字符串中第一个 % 符号处的参数。
arg2 可选。规定插到 format 字符串中第二个 % 符号处的参数。
arg++ 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。
说明
参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束。下面的可能的 format 值:
%% - 返回百分比符号
%b - 二进制数
%c - 依照 ASCII 值的字符
%d - 带符号十进制数
%e - 可续计数法(比如 1.5e+3)
%u - 无符号十进制数
%f - 浮点数(local settings aware)
%F - 浮点数(not local settings aware)
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
*/
$file = fopen("test.txt","w");
echo fprintf($file,"%s Hi!",$str);
echo "<br>";
print_r(explode("a","myall")); //Array ( [0] => my [1] => ll ) explode()函数把字符串分割为数组。
echo "<br>";
if(CRYPT_MD5==1){
echo "MD5:".crypt("myall"); //crypt() 函数返回使用 DES、Blowfish 或 MD5 加密的字符串。
echo "<br>";
echo md5("myall");
}
echo "<br>";
printf("%u",crc32("myall")); //crc32() 函数计算一个字符串的 crc32 多项式。
echo "<br>";
echo htmlentities("I'm myall",ENT_QUOTES); //htmlentities() 函数把字符转换为 HTML 实体。
echo "<br>";
echo html_entity_decode("I'm myall",ENT_QUOTES,"UTF-8"); //
echo "<br>";
echo implode("",array("Hello ", "World!")); //implode()函数把数组元素组合为一个字符串。join()函数是implode()函数的别名。
echo "<br>";
parse_str("id=1&name=myall"); //parse_str()函数把查询字符串解析到变量中。
echo $id."<br>";
echo $name;
echo "<br>";
echo ord("myall"); //109 ord()函数返回字符串第一个字符的ASCII值。
echo "<br>";
echo nl2br("Hello\nmyall"); //nl2br()函数在字符串中的每个新行(\n)之前插入HTML换行符(<br>)。
echo "<br>";
echo sha1("myall"); //sha1() 函数计算字符串的 SHA-1 散列。
echo "<br>";
similar_text("Hello World!","Hello myall",$percent); //similar_text() 函数计算两个字符串的匹配字符的数目。
echo $percent;
echo "<br>";
echo str_ireplace("World","myall","Hello World"); //str_ireplace() 函数使用一个字符串替换字符串中的另一些字符。
echo "<br>";
echo str_pad("myall",20,".",STR_PAD_BOTH); //str_pad() 函数把字符串填充为指定的长度。
echo "<br>";
echo str_shuffle("myall"); //str_shuffle() 函数随机地打乱字符串中的所有字符。
echo "<br>";
echo str_split("myall",3); //str_split()函数把字符串分割到数组中。
echo "<br>";
echo strcasecmp("Hello","myall"); //strcasecmp() 函数比较两个字符串。
echo "<br>";
echo strchr("myall","a"); //该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
echo "<br>";
echo strip_tags("<h1><b>myall</b></h1>","<b><h1>"); //strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签。
echo "<br>";
echo stristr("myall","a"); //stristr() 函数查找字符串在另一个字符串中第一次出现的位置。
echo "<br>";
echo stripos("myall","a",0); //stripos() 函数返回字符串在另一个字符串中第一次出现的位置。
echo "<br>";
echo substr("myall",2,3); //substr() 函数返回字符串的一部分。
echo "<br>";
echo substr_count("myall","l",0,strlen("myall")); //substr_count() 函数计算子串在字符串中出现的次数。
echo "<br>";
echo substr_replace("myall","qq",0,2); //substr_replace() 函数把字符串的一部分替换为另一个字符串。
echo "<br>";
echo ucfirst("myall"); //ucfirst() 函数把字符串中的首字符转换为大写。
echo "<br>";
$str = "myall";
$number = 123;
$txt = vsprintf("Hello %s %u",array($str,$number)); //vsprintf() 函数把格式化字符串写入变量中。
echo $txt;
echo "<br>";
$str = "myall";
echo wordwrap($str,2,"<br>\n",TRUE); //wordwrap() 函数按照指定长度对字符串进行折行处理。