【问题标题】:PHP: Explode textarea lines as separate array elementPHP:将 textarea 行分解为单独的数组元素
【发布时间】: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); 假设可以工作.. 它对我有用。

标签: php textarea explode


【解决方案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
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 2016-02-13
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      相关资源
      最近更新 更多