11、crc32() 函数计算一个字符串的 crc32 多项式。生成 string 参数的 32 位循环冗余校验码多项式。该函数可用于验证数据的完整性。

语法:crc32(string)

注意:由于 PHP 的整数是带符号的,许多 crc32 校验码将返回负整数,因此您需要使用 sprintf() 或 printf() 的 "%u" 格式符来获取表示无符号 crc32 校验码的字符串。

例子 1

在本例中,我们将在使用以及不使用 "%u" 格式符的情况下,输出 crc32() 的结果(注意结果是相同的):

  1. <?php
  2. $str = crc32("Hello world!");
  3. echo 'Without %u: '.$str."<br />";
  4. echo 'With %u: ';
  5. printf("%u",$str);
  6. ?>

输出:

  1. Without %u: 461707669
  2. With %u: 461707669
例子 2

在本例中,我们将在使用以及不使用 "%u" 格式符的情况下,输出 crc32() 的结果(注意结果是不相同的):

  1. <?php
  2. $str = crc32("Hello world.");
  3. echo 'Without %u: '.$str."<br />";
  4. echo 'With %u: ';
  5. printf("%u",$str);
  6. ?>

输出:

  1. Without %u: -1959132156
  2. 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]

注意:解密算法是没有的,这是一种单向加密方法

在本例中,我们将测试不同的算法:

  1. <?php
  2. if (CRYPT_STD_DES == 1)
  3. {
  4. echo "Standard DES: ".crypt("hello world")."\n&lt;br /&gt;";
  5. }
  6. else
  7. {
  8. echo "Standard DES not supported.\n&lt;br /&gt;";
  9. }
  10.  
  11. if (CRYPT_EXT_DES == 1)
  12. {
  13. echo "Extended DES: ".crypt("hello world")."\n&lt;br /&gt;";
  14. }
  15. else
  16. {
  17. echo "Extended DES not supported.\n&lt;br /&gt;";
  18. }
  19.  
  20. if (CRYPT_MD5 == 1)
  21. {
  22. echo "MD5: ".crypt("hello world")."\n&lt;br /&gt;";
  23. }
  24. else
  25. {
  26. echo "MD5 not supported.\n&lt;br /&gt;";
  27. }
  28.  
  29. if (CRYPT_BLOWFISH == 1)
  30. {
  31. echo "Blowfish: ".crypt("hello world");
  32. }
  33. else
  34. {
  35. echo "Blowfish DES not supported.";
  36. }
  37. ?>

输出类似(依赖于操作系统):

  1. Standard DES: $1$r35.Y52.$iyiFuvM.zFGsscpU0aZ4e.
  2. Extended DES not supported.
  3. MD5: $1$BN1.0I2.$8oBI/4mufxK6Tq89M12mk/
  4. Blowfish DES not supported.
  1. 13explode() 函数把字符串分割为数组。
  1. 语法:explode(separator,string,limit)
  1. 说明:本函数返回由字符串组成的数组,其中的每个元素都是由 separator 作为边界点分割出来的子字符串。
  1. separator 参数不能是空字符串。如果 separator 为空字符串(""),explode() 将返回 FALSE
  1. 如果 separator 所包含的值在string 中找不到,那么 explode() 将返回包含 string 中单个元素的数组。如果设置了 limit 参数,
  1. 则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。
  1. 此特性是 PHP 5.1.0 中新增的。
  1. 注意:参数 limit 是在 PHP 4.0.1 中加入的。由于历史原因,虽然 implode() 可以接收两种参数顺序,但是 explode() 不行。
  1. 你必须保证 separator 参数在 string 参数之前才行。

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

  1. <?php
  2. $str = "Hello world. It's a beautiful day.";
  3. print_r (explode(" ",$str));
  4. ?>

输出:

  1. Array
  2. (
  3. [0] => Hello
  4. [1] => world.
  5. [2] => It's
  6. [3] => a
  7. [4] => beautiful
  8. [5] => day.
  9. )
  1.  
  1. 14fprintf() 函数把格式化的字符串写到指定的输出流(例如:文件或数据库)。

该函数返回被写字符串的长度。

语法
  1. 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,依此类推。

提示和注释

注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 "\$" 组成。请参见例子 3。

提示: 相关函数: printf()sprintf()vfprintf()vprintf() 以及 vsprintf()

例子

例子 1
  1. <?php
  2. $str = "Hello";
  3. $number = 123;
  4. $file = fopen("test.txt","w");
  5. echo fprintf($file,"%s world. Day number %u",$str,$number);
  6. ?>

输出:

  1. 27

以下文本将写入 "test.txt":

  1. Hello world. Day number 123
例子 2
  1. <?php
  2. $number = 123;
  3. $file = fopen("test.txt","w");
  4. fprintf($file,"%f",$number);
  5. ?>

输出:

  1. 123.000000
例子 3

使用占位符:

  1. <?php
  2. $number = 123;
  3. $file = fopen("test.txt","w");
  4. fprintf($file,"With 2 decimals: %1\$.2f\nWith no decimals: %1\$u",$number);
  5. ?>

以下文本将写入 "test.txt":

  1. With 2 decimals: 123.00
  2. With no decimals: 123

15、hebrev() 函数把希伯来文本从右至左的流转换为左至右的流。只有 224 至 251 之间的 ASCII 字符,以及标点符号受到影响。

语法:hebrev(string,maxcharline)

maxcharline——规定每行的最大字符数。如果可能,hebrev() 将避免把单词断开。

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

  1.  

PHP学习系列(1)——字符串处理函数(3)的更多相关文章

  1. hive 学习系列四(用户自定义函数)

    如果入参是简单的数据类型,直接继承UDF,实现一个或者多个evaluate 方法. 具体流程如下: 1,实现大写字符转换成小写字符的UDF package com.example.hive.udf; ...

  2. Python学习系列----第四章 函数

    4.1 函数定义   函数是python中重要的工具.函数用关键字 def 来定义.def 关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块 ...

  3. Python学习系列(四)(列表及其函数)

    Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么?     ...

  4. Python学习系列(三)(字符串)

    Python学习系列(三)(字符串) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了 ...

  5. SQLServer学习笔记<>sql的范围内查找,sql数据类型,字符串处理函数

    sql的范围内查找 (1)between.....and用法 通常情况下我们查找一个在某固定区域内的所有记录,可以采用>=,<=来写sql语句,例如:查找订单价格在1000到2000之间的 ...

  6. opencv-python教程学习系列4-opencv绘图函数

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv绘图函数,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统 ...

  7. Sql server函数的学习2(游标函数、日期函数、字符串操纵函数)

    一.游标函数与变量 游标可以处理多行数据,在过程循环中一次访问一行.和基于集合的高效操作相比,这个功能对系统资源的消耗更大. 可以用一个函数和两个全局变量来管理游标操作 1.CURSOR_STATUS ...

  8. hive 学习系列之七 hive 常用数据清洗函数

    1,case when 的利用,清洗诸如评分等的内容,用例如下. case when new.comment_grade = '五星商户' then 50 when new.comment_grade ...

  9. perl学习之:字符串函数

    一.打开.关闭文件 open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零,因此可以如下判断:    if (open(MYFILE, "myfile" ...

  10. (C/C++学习)13.C语言字符串处理函数(一)

    说明:字符串处理的函数很多,本文将例举经常遇到的一些函数加以说明. 一.字符串的输入输出 头文件:<stdio.h> 1.利用标准输出函数 printf() 来输出,将格式设置为 s% . ...

随机推荐

  1. 【转】Android源代码查看途径

    原文网址:http://www.it165.net/pro/html/201501/32967.html 作为一个android coder,多阅读android源码对提高android开发水平是很有 ...

  2. MFC自定义消息

    本文地址:http://blog.163.com/strive_only/blog/static/893801682010101911467765/ 消息机制是windows的典型运行机制,在MFC中 ...

  3. The ToolStripMenuItem visible value always false

    http://social.msdn.microsoft.com/Forums/vstudio/en-US/8cf60e57-6d97-43c6-bb3a-394b9bf130af/the-tools ...

  4. Linq 语法举例

    1.简单的linq语法 //1 var ss = from r in db.Am_recProScheme select r; //2 var ss1 = db.Am_recProScheme; // ...

  5. acm - cry for no one

    再一次回到实验室,距离上次已经四个多月了.诸多业障,三界无安,犹如火灾,众若充满,甚可怖畏,常有生老病死 忧患,如是等火,炽然不息.<成实论>云:“万法刹那生,万法刹那灭,转转相续也”.又 ...

  6. COM编程入门第一部分——什么是COM,如何使用COM

    本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念.内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件.本文不包括如何编写自己的COM对象和接口. CO ...

  7. hdu1074 Doing Homework(状态压缩DP Y=Y)

    Doing Homework Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  8. SDWebImage 图片缓存机制

    SDWebImage与iOS系统自带的缓存相比,优势是什么? 从iOS5开始,iOS NSURLCache对于原生得HTTP Response做内存和磁盘缓存.每一次缓存命中(缓存命中就是说内存或者磁 ...

  9. git变基、冲突解决

    参考git rebase 版本..变基 git冲突解决先fetch,pull,如果文件冲突,手动处理冲突文件,然后再fetch,pull,发现拉不下来,这时需要将文件改为已合并,然后提交文件 具体操作 ...

  10. Android 5.1 Camera 架构学习之Camera初始化

    Android Camera 采用C/S架构,client 与server两个独立的线程之间(CameraService)使用Binder通信. 一 CameraService的注册. 1.手机开机后 ...