1 字符串分割——split()函数和preg_split()函数

split — 用正则表达式将字符串分割到数组中——貌似PHP5.3以上已不赞成使用
array split ( string $pattern , string $string [, int $limit ] )

preg_split — 通过一个正则表达式分隔字符串

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

相同点:都是用正则表达式来分割字符串。
split()用起来更简单,比如分割"2008-12-16 15:48:12",split可以这么写split(['- :'])
而preg_split()要复杂些,就得这么写preg_split("/[\s-:]/")
原因是:split()只支持POSIX风格的正则表达式,而preg_split只支持Perl风格的正则表达式
POSIX风格要比Perl风格的简单,但它不是二进制安全的

对了,还有个explode(),和上面两个函数不同,它是用字符串来分割字符串。

array explode ( string $delimiter , string $string [, int $limit ] )

使用一个字符串分割另一个字符串

注:网上有好多二进制安全的解释,我感觉下面这个解释对于理解上面那句话有帮助:

二进制安全的函数只关心二进制化的字符串,不关心字符串的具体格式,它只会严格的按照二进制的数据进行存取,不会以某种特殊格式解析数据。

2 mysqli::fetch_array 和mysqli::fetch_row的区别

mysqli_result::fetch_row()

从结果集中取得一行作为枚举数组

mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )

从结果集中取得一行作为关联数组,或数字数组,或二者兼有

手册说两者性能貌似没有太大的区别,前者是后者的增强版。

3 单引号和双引号
php的两种字符串类型,单引号和双引号。
单引号的字符串是纯文本(真正的文本),它会不经修改而直接发送给浏览器,不管是变量名称还是其它任何文本。
双引号的字符串,php会尝试计算双引号字符串,其中的变量名称将被变量值所代替。
在这里,变量、字符串、文本和原始数据的概念不能混淆:
变量是表示数据的符号,变量用变量名称表示,表示数据的符号
而单引号的字符串则是文本,本身(字面值)就是原始数据
关键是理解文本和变量的区别,文本是数据,变量是数据的符号。

可以看看《PHP和MySQL Web开发(原书第4版)》中文版第12页对于字符串的介绍。

参考:

《PHP和MySQL Web开发(原书第4版)》中文版第12页,Luke Welling & Laura Thomson著

php二进制字符串的含义 http://www.lofter.com/postentry?from=search&permalink=139418_34c583

知乎:二进制安全是什么意思? http://www.zhihu.com/question/28705562

php学习零散笔记—字符串分割、fetch函数和单双引号。的更多相关文章

  1. js中字符串的replace方法区分单双引号

    今天遇到一问题,js文件中调用字符串的replace方法,不起作用. 后来排查可能觉得replace("<option  value='1'>admin</option&g ...

  2. python将字符串插入表中避免单双引号问题

    调用pymysql.escape_string('向数据库插入的数据') 例如: import pymysql str = 'as"sdf' print(pymysql.escape_str ...

  3. SQL 字符串分割表函数

    --字符串分割表函数 ) ) declare @i int; declare @count int; ); ); declare @Index int; )) declare @rowID int; ...

  4. python笔记22-literal_eval函数处理返回json中的单双引号

    前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...

  5. JS中字符串拼装 单双引号的处理 字符转义

    js中可能会用到动态追加元素,可能数据也是从后台传过来的,当然有两种思路, 1.在后台拼装好直接返回; 2.在前台js里面拼装, 如果拼装大量的html时可能单双引号就容易出问题;那么如何解决呢?最近 ...

  6. es6学习笔记--字符串&数值&数组&函数&对象的扩展

    这几天抽空学习了es6语法,关于字符串,数值,数组,函数以及对象的扩展,看到es6标准入门这本书,里面讲的扩展特别多,我认为有几部分在项目上用不到,就挑有用的当笔记学习了. 字符串的扩展 str.in ...

  7. Oracle拆分字符串,字符串分割的函数。

    第一种:oracle字符串分割和提取 分割 create or replace function Get_StrArrayLength ( av_str varchar2, --要分割的字符串 av_ ...

  8. ssh 使用 sed 替换的时候,替换的字符串有单双引号的时候怎么用

    线上有一个脚本需要 ssh 登录远程机,然后完成特定文件中的某个值,替换的字符中有单引号,所以需要特定的写法,才能成功 1).ssh 远程执行命令,替换字符串中有单引号( ' ) ssh zhuzi@ ...

  9. 为什么建议php字符串使用单引号而不是双引号

    不少php提升效率的tip,都有提到字符串使用单引号,这是为什么呢? 因为在单引号中,php直接认为它里头包含的就是个字符串.而双引号时,php会检测里头是否包含变量.这样如果是纯粹的字符串的话,双引 ...

随机推荐

  1. Nginx模块参考手册:HTTP核心模块

    FROM: http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=17238776&id=2982697 这些模块默认会全部编 ...

  2. GIT和SVN之间的区别及基本操作对比

    1)GIT是分布式的,SVN不是: 这是GIT和其它非分布式的版本控制系统,例如 SVN,CVS等,最核心的区别.如果你能理解这个概念,那么你就已经上手一半了.需要做一点声明,GIT并不是目前第一个或 ...

  3. C#_基础:委托速讲

    1定义:委托=函数指针 C# public delegate void Test(string str); 等价C++ public void (*Test)(string str): 委托赋值(初始 ...

  4. 剑指offer编程题java实现(正在更新)

    面试题三:查找二维数组中元素问题 public static void main(String[] args){ int[][] num = {{1,2,8,9},{2,4,9,12},{4,7,10 ...

  5. Android内存泄漏分享

    内容概述 内存泄漏和内存管理相关基础. Android中的内存使用. 内存分析工具和实践. 以下内容不考虑非引用类型的数据,或者将其等同为对应的引用类型看待--一切皆对象. 内存泄漏概念 不再使用的对 ...

  6. GOTO Berlin: Web API设计原则

    在邮件列表和讨论区中有很多与REST和Web API相关的讨论,下面仅是我个人对这些问题的一些见解,并没有绝对的真理,InnoQ的首席顾问Oliver Wolf在GOTO Berlin大会上开始自己的 ...

  7. Linux下的.NET之旅:第一站,CentOS+Mono+Xsp构建最简单的ASP.NET服务器

    一.Mono产生的背景 由于Linux/Unix等有更强的安全性.运行效率高.拥有大量优秀的开源组件,而.Net则有着其他语言无与伦比的开发效率,因此在非微软平台下运行.Net程序的需求很强烈.Mon ...

  8. SQL Server 数据库设计规范

    数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...

  9. “安装项目” Step By Step

    目录 一 基本操作 二 定制安装对话框 三 安装程序类 四 总结 .NET程序集因为包含了元数据,所以程序集具有自描述性.多数程序自身包含了运行所需要的全部信息,这类程序集就是我们常说的“绿色软件”. ...

  10. TODO:关于自媒体博客改名

    TODO:关于自媒体博客改名 1.微信公众号:ludong86 个人类帐号一个自然年内可主动修改两次名称 2.企鹅号 不能改帐号名称 3.简书 名称可以随意修改,但是个人主页是系统自动生成的. 4.今 ...