php学习零散笔记—字符串分割、fetch函数和单双引号。
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函数和单双引号。的更多相关文章
- js中字符串的replace方法区分单双引号
今天遇到一问题,js文件中调用字符串的replace方法,不起作用. 后来排查可能觉得replace("<option value='1'>admin</option&g ...
- python将字符串插入表中避免单双引号问题
调用pymysql.escape_string('向数据库插入的数据') 例如: import pymysql str = 'as"sdf' print(pymysql.escape_str ...
- SQL 字符串分割表函数
--字符串分割表函数 ) ) declare @i int; declare @count int; ); ); declare @Index int; )) declare @rowID int; ...
- python笔记22-literal_eval函数处理返回json中的单双引号
前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...
- JS中字符串拼装 单双引号的处理 字符转义
js中可能会用到动态追加元素,可能数据也是从后台传过来的,当然有两种思路, 1.在后台拼装好直接返回; 2.在前台js里面拼装, 如果拼装大量的html时可能单双引号就容易出问题;那么如何解决呢?最近 ...
- es6学习笔记--字符串&数值&数组&函数&对象的扩展
这几天抽空学习了es6语法,关于字符串,数值,数组,函数以及对象的扩展,看到es6标准入门这本书,里面讲的扩展特别多,我认为有几部分在项目上用不到,就挑有用的当笔记学习了. 字符串的扩展 str.in ...
- Oracle拆分字符串,字符串分割的函数。
第一种:oracle字符串分割和提取 分割 create or replace function Get_StrArrayLength ( av_str varchar2, --要分割的字符串 av_ ...
- ssh 使用 sed 替换的时候,替换的字符串有单双引号的时候怎么用
线上有一个脚本需要 ssh 登录远程机,然后完成特定文件中的某个值,替换的字符中有单引号,所以需要特定的写法,才能成功 1).ssh 远程执行命令,替换字符串中有单引号( ' ) ssh zhuzi@ ...
- 为什么建议php字符串使用单引号而不是双引号
不少php提升效率的tip,都有提到字符串使用单引号,这是为什么呢? 因为在单引号中,php直接认为它里头包含的就是个字符串.而双引号时,php会检测里头是否包含变量.这样如果是纯粹的字符串的话,双引 ...
随机推荐
- iOS开发之AFNetworking 3.0.4使用
昨天使用Cocoapods导入AFN做POST的时候,导入的最新版的3.0.4,突然发现找不到AFHTTPRequestOperationManager了...上github上一看,发现没有这个了.刚 ...
- 基于腾讯手Q样式规范Frozen UI
Frozen UI是一个开源的简单易用,轻量快捷的移动端UI框架.基于手Q样式规范,选取最常用的组件,做成公用离线包减少请求,升级方式友好,文档完善,目前全面应用在腾讯手Q增值业务中. css组件包括 ...
- 玩转Asp.net MVC 的八个扩展点
MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供的扩展点可以达到事半功倍的效果,另一方面Asp.net MVC优秀的设计和高质量的代码也值得我们去 ...
- MySQL 分析服务器状态
标签:MYSQL/数据库/性能优化/调优 概述 文章简单介绍了通过一些查询命令分析当前服务器的状态. 目录 概述 获取服务器整体的性能状态 SQL操作计数 总结 步骤 获取服务器整体的性能状态 首先对 ...
- Christmas Trees, Promises和Event Emitters
今天有同事问我下面这段代码是什么意思: var MyClass = function() { events.EventEmitter.call(this); // 这行是什么意思? }; util.i ...
- Inter Core CPU 型号的尾字母含义
Inter Core CPU 型号的尾字母含义: M:表示移动处理器(Mobile Processor):QM:四核移动处理器(Quad Mobile Processor):U:超低电压处理器(Ult ...
- Qt5 Crash When Open File With QFileDialog
问题描述 在使用Qt的QFileDialog这个类,来进行文件的打开和选择的时候, 就在调用的时候, 总是发生崩溃. 而且没有任何的提示性的信息. 而且崩溃的概率很高. 也有不崩溃的情况. 这个问题, ...
- vSphere Client 编辑虚拟机属性的问题
编辑虚拟机属性的时候, 出现: vpxclient.vmconfig.cpuid 初始值设置异常之类的,重置了, 并将注册表中的所有vmvare 相关键值删除了, 还是一样的.. 后面参照https: ...
- 基础才是重中之重~Emit动态构建方法(参数和返回值)
回到目录 对于Emit我们知道它的可以动态构建程序集,类型,方法,属性等,或者说只要手动使用C#创建的东西使用Emit也都可以动态创建它们,Emit由于它的特别之处,所以在很多领域得到了广泛的应用,像 ...
- 《Spark快速大数据分析》—— 第三章 RDD编程