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

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

2014-10-10 12:47 656 查看
11、crc32()函数计算一个字符串的crc32多项式。生成string参数的32位循环冗余校验码多项式。该函数可用于验证数据的完整性。语法:crc32(string)注意:由于PHP的整数是带符号的,许多crc32校验码将返回负整数,因此您需要使用sprintf()或printf()的"%u"格式符来获取表示无符号crc32校验码的字符串。例子1在本例中,我们将在使用以及不使用"%u"格式符的情况下,输出crc32()的结果(注意结果是相同的):
<?php
$str=crc32("Helloworld!");
echo'Without%u:'.$str."<br/>";
echo'With%u:';
printf("%u",$str);
?>
输出:
Without%u:461707669
With%u:461707669
例子2在本例中,我们将在使用以及不使用"%u"格式符的情况下,输出crc32()的结果(注意结果是不相同的):
<?php
$str=crc32("Helloworld.");
echo'Without%u:'.$str."<br/>";
echo'With%u:';
printf("%u",$str);
?>
输出:
Without%u:-1959132156
With%u:2335835140
12、crypt()函数返回使用DES、Blowfish或MD5加密的字符串。在不同的操作系统上,本函数的行为不同,某些操作系统支持一种以上的算法类型。在安装时,PHP会检查什么算法可用以及使用什么算法。语法:crypt(str,salt)salt参数可选。用于增加被编码字符数目的字符串,以使编码更加安全。如果未提供salt参数,则每次调用该函数时会随机生成一个。确切的算法依赖于salt参数的格式和长度。下面是与crypt()函数一起使用的一些常量。在安装时,由PHP设置这些常量:[CRYPT_SALT_LENGTH][CRYPT_STD_DES][CRYPT_EXT_DES][CRYPT_MD5][CRYPT_BLOWFISH]注意:解密算法是没有的,这是一种单向加密方法在本例中,我们将测试不同的算法:
<?php
if(CRYPT_STD_DES==1)
{
echo"StandardDES:".crypt("helloworld")."\n<br/>";
}
else
{
echo"StandardDESnotsupported.\n<br/>";
}

if(CRYPT_EXT_DES==1)
{
echo"ExtendedDES:".crypt("helloworld")."\n<br/>";
}
else
{
echo"ExtendedDESnotsupported.\n<br/>";
}

if(CRYPT_MD5==1)
{
echo"MD5:".crypt("helloworld")."\n<br/>";
}
else
{
echo"MD5notsupported.\n<br/>";
}

if(CRYPT_BLOWFISH==1)
{
echo"Blowfish:".crypt("helloworld");
}
else
{
echo"BlowfishDESnotsupported.";
}
?>
输出类似(依赖于操作系统):
StandardDES:$1$r35.Y52.$iyiFuvM.zFGsscpU0aZ4e.
ExtendedDESnotsupported.
MD5:$1$BN1.0I2.$8oBI/4mufxK6Tq89M12mk/
BlowfishDESnotsupported.
13、explode()函数把字符串分割为数组。
语法:explode(separator,string,limit)
说明:本函数返回由字符串组成的数组,其中的每个元素都是由separator作为边界点分割出来的子字符串。
separator参数不能是空字符串。如果separator为空字符串(""),explode()将返回FALSE。
如果separator所包含的值在string中找不到,那么explode()将返回包含string中单个元素的数组。如果设置了limit参数,
则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分。如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素。
此特性是PHP5.1.0中新增的。
注意:参数limit是在PHP4.0.1中加入的。由于历史原因,虽然implode()可以接收两种参数顺序,但是explode()不行。
你必须保证separator参数在string参数之前才行。

例子:在本例中,我们将把字符串分割为数组:

<?php
$str="Helloworld.It'sabeautifulday.";
print_r(explode("",$str));
?>
输出:
Array
(
[0]=>Hello
[1]=>world.
[2]=>It's
[3]=>a
[4]=>beautiful
[5]=>day.
)
14、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-浮点数(localsettingsaware)%F-浮点数(notlocalsettingsaware)%o-八进制数%s-字符串%x-十六进制数(小写字母)%X-十六进制数(大写字母)arg1,arg2,++等参数将插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个%符号中,插入arg1,在第二个%符号处,插入arg2,依此类推。

提示和注释

注释:如果%符号多于arg参数,则您必须使用占位符。占位符被插入%符号之后,由数字和"\$"组成。请参见例子3。提示:相关函数:printf()、sprintf()、vfprintf()、vprintf()以及vsprintf()。

例子

例子1
<?php$str="Hello";$number=123;$file=fopen("test.txt","w");echo[code]fprintf($file,"%sworld.Daynumber%u",$str,$number)
;?>[/code]输出:
27
以下文本将写入"test.txt":
Helloworld.Daynumber123
例子2
<?php$number=123;$file=fopen("test.txt","w");[code]fprintf($file,"%f",$number);
?>[/code]输出:
123.000000
例子3使用占位符:
<?php$number=123;$file=fopen("test.txt","w");[code]fprintf($file,"With2decimals:%1\$.2f\nWithnodecimals:%1\$u",$number)
;?>[/code]以下文本将写入"test.txt":
With2decimals:123.00Withnodecimals:123
15、hebrev()函数把希伯来文本从右至左的流转换为左至右的流。只有224至251之间的ASCII字符,以及标点符号受到影响。语法:hebrev(string,maxcharline)maxcharline——规定每行的最大字符数。如果可能,hebrev()将避免把单词断开。

说明:hebrev()和hebrevc()可以把希伯来逻辑文本转换为希伯来可见文本。希伯来可见文本不需要特殊的右至左字符支持,这使它对于在web上显示希伯来文本很有用处。


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