PHP踩坑记录之explode分割字符串函数
引言:今天同学突然问我php分割字符串怎么做?该用什么?我把一个文件的内容全部读出来 然后根据换行来分割。
怎么分割?我心想这个我知道explode分割字符串函数吗,随手把explode函数官方手册发给了他,不过事情好像没有那么简单。
explode函数
首先,我们来看下explode字符串分割函数函数的用法:
explode ( string $delimiter , string $string [, int $limit ] ) : array
函数中的参数,我就不解释了,这里有一点需要注意第一个参数$delimiter,在使用时要注意双引号(" ")与单引号(' ')的区别,一般来说有明确的边界分割字符直接可以使用单引号,无需使用双引号进行解析。不过边界分割字符为空格(" "),换行(" \n")等就需要使用双引号进行解析。
下面我们就来举个例子,首先新建文本文件test.txt,内容如下:
- imponyxiao
- hello
- word
接下来,我们来写PHP文件explode.php:
<?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如何禁止eval
下一篇: php 如何禁止代理ip访问