php - 在 windows 和 linux 服务器中 explode 错误\r\n 和\n

标签 php textarea explode

我已经使用 explode 函数将 textarea 包含到基于行的数组中。当我在我的本地主机 (WAMPserver 2.1) 中运行此代码时,它与此代码完美配合:

$arr=explode("\r\n",$getdata);

当我上传到我的 linux 服务器时,我每次都需要将上面的代码更改为:

$arr=explode("\n",$getdata);

什么是我的永久解决方案。哪个通用代码适用于两个服务器?

谢谢

最佳答案

常量 PHP_EOL 包含平台相关的换行符,所以你可以试试这个:

$arr = explode(PHP_EOL, $getdata);

但更好的方法是规范化文本,因为您永远不知道访问者使用什么操作系统。这是一种规范化仅使用\n 作为换行符的方法(但也请参阅 Alex 的回答,因为他的正则表达式将处理所有类型的换行符):

$getdata = str_replace("\r\n", "\n", $getdata);
$arr = explode("\n", $getdata);

关于php - 在 windows 和 linux 服务器中 explode 错误\r\n 和\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769589/

相关文章:

php - MYSQL 作为带有子查询的查询比 2 个查询 (+php) 工作得慢

javascript - 如何将脚本标签/JS作为文本 append 到文本区域(不可执行)

javascript - 使用 jQuery 的文本区域宽度(减去滚动条)

php - 如何用 PHP 将每个单词包装在 span 中?

python - 如何在 Pandas 中扩展和创建以下数据集

PHP 绑定(bind)变量、无效参数号错误或 PDO 更新语句

php - MySQL left join,创建多维数组后

javascript - 使用类型选择器获取 textarea 的 ID 无效

PHP MYSQL 编辑表单,试图将行内爆/分解为复选框?

php mysql_query 找不到索引