二进制安全功能(binary-safe function)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作。这能够保证文件不会因为某些操作而遭到损坏。二进制数据是按照一串0和 1的形式编码的。而绝大多数的程序会给某些特殊的比特串赋予不同的格式代码,所以当用户使用一个程序读取一个二进制文件时,该文件会被按照这个程序的规则 进行解释。如果这个程序所使用的格式编码和文件被写入的格式编码一致,那么这个文件可以被正常读取,否则该文件的格式代码之中会被附加一些无意义的符号, 也可能会导致文件损坏。如果最严重的情况发生,这样的操作会因为损坏导致你的数据永久丢失。所以你应该将重要的文件保存在只读性的存储介质上,例如光盘。

PHP里,有string的概念。
string里,每个字符的大小为byte(与PHP相比,Java的每个字符为Character,是UTF8字符,C语言的每个字符可以在编译时选择)。
byte里,有ASCII代码的字符,例如ABC,123,abc,也有一些特殊字符,例如回车,退格之类的。
特殊字符很多是不能显示的。或者说,他们的显示方式没有标准,例如编码65到哪儿都是字母A,编码97到哪儿都是字符a,退格在有的地方显示成一个符号,在有的地方就会真的把前一个字符退掉。
PHP
以C为基础,所以很多描述都是以C为对比。C的字符串里,一种经典的定义就是,以编码0作为字符串的结尾。那么,假设这样一个string,里面3个字符
的编码分别是97,0,97。那么,C里面如果有str_replace等效的函数, 利用它把97换成98,那么这个函数读取到0的时候,就认为已经结
束了,就会得到98,0,97。跟它对应的,PHP里的str_replace是二进制安全的,那么这个0不会被视为特殊的结束符号,于是结果就是
98,0,98。
【二进制安全】在PHP文档里,基本就是这么一个意思:C语言里的功能类似的函数会对有的字符特别处理,而PHP这个函数对于所有字符一视同仁,不用担心会有特殊字符影响处理,特别不用担心编码0字符。

最新文章

  1. CodeForces 165C Another Problem on Strings(组合)
  2. firefox的plugin-container进程关闭方法
  3. 《Head First Servlet JSP》web服务器,容器,servlet的职责
  4. 远程桌面Default.rdp 中各个参数的含义
  5. iframe无刷新跨域上传文件并获取返回值
  6. 解决sublime text 2总是在新窗口中打开文件
  7. PAT 1075. PAT Judge (25)
  8. "make_path" is not exported by the File::Path modul
  9. jQuery AJAX实现调用页面后台方法
  10. nyoj 228 士兵杀敌(五)
  11. SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法
  12. ZOJ 1655 FZU 1125 Transport Goods
  13. 如何获取网页验证码图片并保存到本地(Java实现) [问题点数:40分,结帖人lanxuezaipiao]
  14. .Net EF框架的增删改查
  15. setTimeout 与 Event Loop 浅析
  16. vue中什么样的数据可以是在视图中显示
  17. 设置eclipse全局编码格式
  18. codeforces463D
  19. TF用法指导
  20. hive 基础

热门文章

  1. java对redis的基本操作(一)
  2. EBS 11i升级R12
  3. Android SQLiteOpenHelper Sqlite数据库的创建与打开
  4. WebApi使用JWT认证(一)
  5. DBCC--常用命令
  6. jqury的ajax
  7. Redis的快照
  8. 从getwebshell到绕过安全狗云锁提权再到利用matasploit进服务器
  9. 更换SSL证书
  10. ReentrantLock总体概括