首页 > 解决方案 > 从字符串 PHP 中提取行

问题描述

所以我在 PHP 脚本中通过 imap 添加了一个字符串。电子邮件中总是有 12 行 - 总是。我需要能够将每一行分配给一个变量。

通常,我会使用一些标记来表示电子邮件中值的结束/开始,但在这种情况下这不是一个选项(它们是从船上发送的,因此更大的电子邮件意味着更多的钱)。

电子邮件看起来像 -

CCL21045
04/03/2020
1800
32.50
17.20
Nil
Nil

它全部作为一个块发送,行之间没有空白。我需要将上面的 4 行放入它们自己的变量中。

任何帮助,将不胜感激!

标签: php

解决方案


如果您知道格式将始终保持相同的顺序,您可以使用 PHPexplode()将输入按行拆分为单独的变量。就像是:

[$report_date, $coordinates, $speed, $destination, ] = explode("\n", $email);

即使它没有按特定顺序,您仍然可以使用explode()将输入拆分为一个数组并循环遍历每一行以将其与您想要/需要的内容相匹配。IE:

$lines = explode("\n", $email);
foreach ($lines as $line) {
    if (preg_match('@^\d{2}/\d{2}\d{4}$@', $line)) {
        $report_date = $line;
    }

    // ... more rules for other input types
}

推荐阅读