【问题标题】:simple PHP to MYsql filtering简单的 PHP 到 MYsql 过滤
【发布时间】:2023-03-22 09:53:01
【问题描述】:

我需要将作为电子邮件文本文件接收的数据粘贴到 html 表单中,该表单通过 php 文件将数据发送到 mysql 数据库,该 php 文件将数据过滤到 mysql 表中的相关单元格中。

数据到达并被复制到这样的输入框中:

First name: John
Last name: Smith
telephone: 01234 56789

什么 php 会从字符串中删除 "First name:" 并将 "john" 发布到数据库的名字列中,同样使用 "Last name" 和 "telephone"

构建html表单和数据库不是问题;我的 php 虽然还没有跟上速度!

提前致谢。

【问题讨论】:

  • 输入框是文本区域吗?如果不是,那是什么?
  • 既然可以控制HTML表单,何不把它设置成三个独立的输入框呢?
  • 尝试学习PHP,用输入框和标签构建一个更简单的表单
  • 看看strpos和substr
  • 如果传入数据的格式是一致的,那么也许你应该使用正则表达式来获取数据。 preg_match('/First\ name:(.+?)Last\ Name:(.+?)Telephone:(.+?)/isx', $email, $matches); 之类的东西?

标签: php mysql text


【解决方案1】:

据我了解,您会收到带有数据的纯文本电子邮件。

然后你想解析它。如果你的“标签”是自动生成的并且是一致的,那么你可以很容易地解析它......这样说:

假设您将电子邮件文本加载到变量 $email_content 中。

$lines = explode("\n",$email_content);
$array_of_values = array();
foreach ($lines as $line) {
    if (str_pos(":",$line)!==false) {
        $temp_array = explode(":",$line);
        $array_of_values[trim($temp_array[0])] = trim($temp_array[1]);
    }
}

最后你会得到一个这样的数组:

array(
    'First Name'=> 'John',
    'Last name' => 'Smith',
    'telephone' => '01234 56789'
)

然后您将能够轻松地通过键访问您喜欢的任何值,然后根据需要将其保存到数据库中。

虽然有某些假设 - 您只有 : 在包含标签:值对的行中。此外,行尾字符始终为 /n。但这只是一个指针,不是现成的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多