Ary*_*n G 4 php textarea explode
我已经使用explode函数将textarea的包含到基于行的数组中.当我在localhost(WAMPserver 2.1)中运行此代码时,它与此代码完美配合:
$arr=explode("\r\n",$getdata);
Run Code Online (Sandbox Code Playgroud)
当我上传到我的linux服务器时,我需要每次更改上面的代码:
$arr=explode("\n",$getdata);
Run Code Online (Sandbox Code Playgroud)
什么是我的永久解决方案.哪种常用代码对我来说都适用于两台服务器?
谢谢
常量PHP_EOL包含与平台相关的换行符,因此您可以尝试:
$arr = explode(PHP_EOL, $getdata);
Run Code Online (Sandbox Code Playgroud)
但更好的是规范化文本,因为您永远不知道访问者使用的操作系统.这是标准化为仅使用\n作为换行的一种方法(但也见Alex的答案,因为他的正则表达式将处理所有类型的换行):
$getdata = str_replace("\r\n", "\n", $getdata);
$arr = explode("\n", $getdata);
Run Code Online (Sandbox Code Playgroud)
据我所知分裂由换行符字符串最好的方法是preg_split和\R:
preg_split('~\R~', $str);
Run Code Online (Sandbox Code Playgroud)
\R匹配任何Unicode行序列,即不仅LF,CR,CRLF,也更奇特的像VT,FF,NEL,LS和PS.
如果不需要这种行为(为什么?),您可以指定BSR_ANYCRLF选项:
preg_split('~(*BSR_ANYCRLF)\R~', $str);
Run Code Online (Sandbox Code Playgroud)
这将仅匹配"经典"换行序列.
| 归档时间: |
|
| 查看次数: |
5373 次 |
| 最近记录: |