【问题标题】:extract only numbers from textarea using php使用php仅从textarea中提取数字
【发布时间】:2023-01-27 01:51:00
【问题描述】:

我有一个 textarea,textarea 中的每一行都包含数字或名称,我只想从 textarea 中提取数字。

这是我的代码


<?php 

    $allUsers = $_POST['allusers'];
    foreach(explode("\n", $allUsers) as $line) {
        
        if (is_numeric($line)) {
            echo $line."\n";
        }

    }
?>

和文本区域数据的例子:

<textarea>
156444
978455
amoka
123
auman
</textarea>

【问题讨论】:

  • 对于那个小例子来说似乎工作正常; onlinephp.io/c/9a502。你遇到什么问题了吗?
  • @waterloomatt 在数据来自 textarea $_POST['allusers'] 时不起作用,它返回一个空白页
  • 你确定它是 method=post 形式,而不是 getvar_dump($_POST);看看你收到了什么。
  • 如果该行以空格结尾,is_numeric($line) 将不成立。行尾可能有空格或\r。试试is_numeric(trim($line))
  • @Barmar 谢谢,它有效

标签: php


【解决方案1】:

在检查它是否为数字之前删除该行周围的空格。

    foreach(explode("
", $allUsers) as $line) {
        $line = trim($line);
        if (is_numeric($line)) {
            echo $line."
";
        }
    }

【讨论】:

    【解决方案2】:

    使用正则表达式的解决方案

     $text = 'ggd 56756 sadhgsagdahdgash  dhjghjg 324324 3  432 423 4 324hjhghjgjh 343434 34 34 hgjhghj';
        
        preg_match_all('/d+/', $text, $matches);
        
        $numbers = $matches[0];
        
        print_r($numbers);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 2021-07-18
      • 2015-09-21
      • 1970-01-01
      • 2016-10-27
      相关资源
      最近更新 更多