【问题标题】:Insert print_r output into MySQL [closed]将 print_r 输出插入 MySQL [关闭]
【发布时间】:2025-11-29 09:15:01
【问题描述】:

我在远程服务器的文本文件 (dump.log) 中有此输出。我无法访问原始 PHP 创建的数组:

Array
(
    [email] => ddiar@beu.ac.il
    [timestamp] => 1369735202
    [smtp-id] => <1369735199.51as4801fed0f7@www.pub.org>
    [category] =>  decision 
    [event] => processed
)
Array
(
    [email] => jc@open.com
    [timestamp] => 1369735202
    [smtp-id] => <1369735199.51a4801fed0f7@www.open.org>
    [category] => Interm 
    [event] => processed
)
Array
(
    [email] => ilgkliar@bku.ac.il
    [timestamp] => 1369735204
    [smtp-id] => <1369735199.51ahg4801fed0f7@www.open.org>
    [response] => 250 OK: <ed628ghjbf2000aec70@bkju.ac.il> 
    [category] => decision 
    [event] => delivered
)

现在我想使用 PHP 将值插入 MySQL 表。 (比如 email_field、time_field、category_field..等等。)

我尝试了 here 的 print_r_reverse 函数,但没有运气。 请提供完整的代码。

【问题讨论】:

  • 遍历数组应该不难。你试过了吗?
  • 欢迎来到 *。我们很乐意帮助您解决代码中的问题,但本网站并非旨在鼓励其他人为您编写代码或开发计划。当您遇到与代码相关的特定问题时,请随时改进此问题或提出新问题。
  • print_r 输出并不完全适合解析。为什么不能使用合适的数据序列化格式?
  • print_r 不打算用作序列化格式不可能print_r 输出完美地重构PHP 数据结构。在某些情况下,您可能可以这样做,但它不是为此而设计的,并且在某些情况下无法做到。当然没有官方的方法可以做到这一点。您已经尝试过的print_r_reverse 功能可能是您可用的最佳选择;如果这不起作用,您很可能会被卡住。如果可能,我建议将日志记录格式更改为可重构的格式。
  • 顺便问一下 -- 您尝试的 print_r_reverse 函数到底有什么问题?你试过调试吗?

标签: php arrays


【解决方案1】:

您需要使用 print_r 吗?为了您的目的,var_export 更适合。

http://www.php.net/manual/en/function.var-export.php

输出或返回变量的可解析字符串表示

我可能会使用 json_encodejson_decode

首先检查您的 PHP 是否支持 JSON。

【讨论】:

  • 谢谢 var_export 工作正常。
【解决方案2】:

你有几个选择:

  • 使用 sedawk 将数据提取到 CSV 文件中,然后可以 使用LOAD DATA LOCAL 导入数据库
  • 编写将占用每一行的 PHP 代码,查找每一行的特定功能,然后创建一个数组,该数组可以使用您喜欢的任何 PHP MySQL 命令导入数据库(但不推荐使用mysql_ 的命令,因为它们已被弃用)
  • 花钱请人为您编写代码

无论哪种方式,我猜都会涉及到正则表达式。

您没有展示您尝试过的任何内容,这意味着如果您希望有人为您编写代码,那么您来错地方了。

【讨论】: