从命令行自动提交表单

时间:2010-04-18 08:54:00

标签: php

我在PHP中有一个表单页面,它读取一个DBF,并有条件地将其转换为MySQL - 从一个旧的,但仍然是生产会计应用程序中提取数据。转换应该能够在没有用户干预的情况下进行操作,即在cron作业上从web主机的命令行编写脚本。

如何在命令行接收变量时让PHP自动提交表单,例如特定的post变量?到目前为止,我发现的每个自动提交都依赖于javascript,这在PHP命令行中是无用的。

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您会尝试将数据自动传递给以前通过HTML表单传递的PHP脚本。在cron作业中自动执行此过程时,不会呈现任何表单,因此自动提交它是不可能的 - 您通常会立即将数据传递给脚本。

这样做的方法包括:

  • 如果您的表单数据很小(少于1k,没有文件上传),那么您可以使用wget或{{1}从cron作业调用脚本,但仍然可以通过Web服务器调用}:

    curl
  • 如果您的表单数据超过1-2千字节,请使用curl www.example.com/script.php?field1=value1&field2=value2&field3=value3 将字段作为POST值传递(请参阅curl上的手册)

  • 使用PHP二进制文件从命令行调用PHP脚本;将数据作为参数传递给脚本。详情here

  • 如果数据太多而无法通过命令行传递,请将其放入临时文件并让PHP脚本解析该文件。

答案 1 :(得分:0)

您可以用几乎任何支持发出GET / POST请求的语言编写一个cli脚本(PHP,Python,Bash with curl,Java ...)并执行与提交表单相同的调用...

使用2个文本字段填写表单:foo和bar

有两个主要案例: