我正在创建一个函数,它可以接受一个字符串,该字符串要么通过file_get_contents()
本地文本文件检索,要么从http://site.com/338383.txt
.
该文件将是一个制表符分隔的文件,文件中的每个项目都在其自己的行上。使用\n
或\r
使用explode()
字符串并获取每行的数组更好吗?
我注意到在某些情况下\n
不起作用。我想要一种始终有效的一致方式。有什么想法吗?
您可以使用file()将文件的内容作为具有单独行的数组获取。
问题是对于不同的“文本/纯文本”编码和平台,换行符的定义不同。快速而肮脏的解决方案可能是使用 split 和正则表达式“\r\n|\r|\n”,但是,它可能会在某些 unicode 文件上中断并且它没有“上下文”意义。即,如果您有一个文件,其中 LF (\n) 用作 EOL 标记,并且那里有一些应该保留的 CR,那么这些 CR 也将被拆分。
您可以使用preg_split ()按 /\n\r|\n|\r/ 分解,然后trim ()每个项目以确保没有剩余的尾随空格(如果合适的话)。