PHP:将 textarea 行分解为单独的数组元素
Posted
技术标签:
【中文标题】PHP:将 textarea 行分解为单独的数组元素【英文标题】:PHP: Explode textarea lines as separate array element 【发布时间】:2012-03-10 21:13:04 【问题描述】:我有一个包含电话号码的文本区域,每个号码在单独的一行中。我想使用
将该字符串分解为一个数组explode("\n", $numbers);
或
explode("\r\n", $numbers);
这不起作用。请帮我。谢谢!
【问题讨论】:
如果你这么聪明,告诉我,这里出了什么问题? 您是想写explode("\n", $numbers);
还是explode("\r\n", $numbers);
?或者你实际上是把这两个语句写成这样的一行吗?
您应该发布更多代码、html 表单以及更多周边代码。
explode("\r\n", $numbers);
假设可以工作.. 它对我有用。
【参考方案1】:
$records = preg_split('/[\r\n]+/', $mystring, -1, PREG_SPLIT_NO_EMPTY);
应该这样做。
【讨论】:
【参考方案2】:正如manual 所说:返回一个字符串数组。
所以你必须存储结果。 or
也不会那样工作。如果您不知道输入是否包含\n
或\r\n
,您可以执行替换以将\r
替换为空字符串,然后在\n
上展开。
这应该可以解决问题:
$numbers = explode("\n", str_replace("\r", "", $numbers));
【讨论】:
你是对的,当然。用户提交的数据可能无法转换为系统 EOL。评论已撤回。【参考方案3】:使用这个
<?php
$input = $_POST['textarea_name'];
$new_array = array_values(array_filter(explode(PHP_EOL, $input)));
// explode -> convert textarea to php array (that lines split by new line)
// array_filter -> remove empty lines from array
// array_values -> reset keys of array
?>
【讨论】:
以上是关于PHP:将 textarea 行分解为单独的数组元素的主要内容,如果未能解决你的问题,请参考以下文章
将对象数组分解为用于数据库存储的单独变量(React、express、sql server)