PHP踩坑记录之explode分割字符串函数
引言:今天同学突然问我php分割字符串怎么做?该用什么?我把一个文件的内容全部读出来 然后根据换行来分割。
怎么分割?我心想这个我知道explode分割字符串函数吗,随手把explode函数官方手册发给了他,不过事情好像没有那么简单。
explode函数
首先,我们来看下explode字符串分割函数函数的用法:
[code]explode ( string $delimiter , string $string [, int $limit ] ) : array
函数中的参数,我就不解释了,这里有一点需要注意第一个参数$delimiter,在使用时要注意双引号(" ")与单引号(' ')的区别,一般来说有明确的边界分割字符直接可以使用单引号,无需使用双引号进行解析。不过边界分割字符为空格(" "),换行(" \n")等就需要使用双引号进行解析。
下面我们就来举个例子,首先新建文本文件test.txt,内容如下:
- imponyxiao
- hello
- word
接下来,我们来写PHP文件explode.php:
[code]<?php //读取文件内容 $f = file_get_contents('./test.txt'); //通过换行来分割文件内容 $n = explode("\n", $f); print_r($n);
这里还要说一下,换行符的表示主要有三种:LF(Line Feed即换行,转义字符用“\n”表示,十六进制0x0A),CR(Carriage Return 即回车,转义字符用“\r”表示,十六进制0x0D)和CRLF(由两个字符“CR+LF”组成,即“\r\n”,十六进制0x0D 0x0A)。一般操作系统上的运行库会自动决定文本文件的换行格式:程序在Windows上运行就生成CRLF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件。因此,当我们在Windows系统上编辑文本文件时,敲下“enter”键或者写入“\n”,系统会经过一个隐式的转换,将“\n”转换成“\r\n”再写入文件,反过来当我们对文件进行读取时,系统又会进行一个隐式的转换,将读取到的“\r\n”转换为“\n”输出。
这里对"\n","\r\n"进行了测试,结果是一样的。
嗯,就是这样了。总结有两点:
- 注意单双引号的区别;
- 理解换行符号的使用;
生命不息,踩坑不止。
参考文章
- PHP分割数组函数explode
- php连接函数implode与分割explode
- PHP 使用函数explode()、implode()和join()分割和连接字符串
- php使用explode分割字符串新手容易忽略的问题
- php连接函数implode与分割explode的深入解析
- php使用explode分割字符串新手容易忽略的问题
- php表达式之explode() 分割字符串
- php explode时间分割
- php连接函数implode()和分割explode()
- boost 分割字符串并存入集合(类似php中的EXPLODE)
- PHP - Manual手册 - 函数参考 - String 字符串处理函数 - explode使用一个字符串分割另一个字符串
- php字符串函数(2)替换、分割、填充、去除
- php explode 函数是按GBK的字节码来分割的
- php中解决explode()函数无法分割tab键问题
- PHP 字符串分割 explode 与 str_split 函数
- PHP字符串分割函数explode,strtok,str_spli的用法
- php连接函数implode与分割explode的深入解析
- PHP字符串分割函数explode,strtok,str_spli的用法
- php用explode,可以提供多个字符作为分割符来进行分割数组吗?
- php连接函数implode()和分割explode()