【问题标题】:Insert into database wihtout client with PHP使用 PHP 在没有客户端的情况下插入数据库
【发布时间】:2018-04-08 02:00:15
【问题描述】:

我有一个解析 XML 并将其显示在网页上的 PHP 网站。 XML 文件经常更改,因此会更改网页。它每 30 分钟更改一次。

我希望能够获取 XML 数据并将其插入到我的 MySQL 数据库中。但是,每次更新 XML 时,我都找不到将数据插入数据库的方法,因为必须涉及客户端,即使在 30 分钟内访问了多个页面,数据也会被插入多次时间跨度。

每次更新 XML 文件时,我希望我的数据如下:

XML -> PHP -> 数据库

这可能是不可能的,所以我知道我可能必须使用单独的脚本语言来使用短语 XML 内容更新数据库。由于必须触发 XML 更改,因此数据库更新 PHP 在这种情况下可能无法工作。 XML 通过一个简短的 Bash 脚本进行更新。我研究过使用 BASH,但它在解析 XML 和更新数据库方面似乎效果不佳,而且对我来说这将是一个巨大的学习曲线。 我在 Ubuntu 机器上运行它。

感谢任何建议和帮助。

【问题讨论】:

  • xml是如何更新的?
  • 通过nmap。 Nmap 没有数据库功能。只是 XML
  • cron 作业检查文件日期是否已更改,然后可能会导入。如果您依赖客户端访问,只需记录其已完成或检查文件时间戳即可停止重复
  • 如何更新数据库?那时我将不得不通过另一种脚本语言来做到这一点。我什至可以只用 php 而不用 Cron 作业来检查它,但我遇到了同样的错误,需要客户端将数据放在数据库中
  • 用 php 来做就行了。使用 php 将 xml 导入 mysql 数据库是微不足道的

标签: php mysql xml linux bash


【解决方案1】:

感谢 smith 和 Tim Morton,我找到了解决方案。

我创建了一个单独的 PHP 文件,它将 XML 解析为变量并将数据插入到数据库中。

为了运行更新 XML 文件的 Nmap 脚本,我使用了一个名为 bash 脚本的 cron 作业。在运行 Nmap 后的 bash 脚本中,我将目录位置更改为包含我的脚本以及我的 XML 文件的文件夹。然后我使用 PHP CLI ( php -f /xxx/xxx/php.php ) 运行 PHP 文件。

因此,我没有使用触发器来确定 XML 文件是否更改,而是在另一个 PHP 文件中更新了数据库,该文件在同一个 bash 脚本中调用。

它是这样工作的:

             Cron job > BASH script > Run Nmap       > update XML
                                    > call PHP file  > update database

再次感谢 SmithTim Morton

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    相关资源
    最近更新 更多