2010-04-18 80 views
1

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

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

+0

什么是DBF? - – 2010-04-18 08:55:09

+0

旧的数据库格式(clipper/xBase) – user132192 2010-04-18 08:58:00

回答

2

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

的方法来做到这一点包括:

  • 如果你的表单数据很小(小于1K,没有文件上传),那么你可以,但还是通过web服务器调用由cron作业脚本,使用wgetcurl

    curl www.example.com/script.php?field1=value1&field2=value2&field3=value3 
    
  • 如果表单数据是超过1-2千字节,使用curl传递字段POST值(见说明书上curl

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

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

+0

谢谢,您证实了我的怀疑。是的,我希望命令行能够正常工作,但是对于同样的表单,它也可以像浏览器中的用户直接交互一样工作。数据非常庞大... HTML的页面加载量大约为5MB,因为列出的项目超过6000个。所以我认为我将不得不选择最后一个选项......并且对于命令行的条件,写入另一个文件,然后让接收脚本搜索并解析该文件(如果存在)。干杯:D – user132192 2010-04-18 09:18:01

+0

@combatwombat没问题。如果您希望HTML表单继续使用相同的脚本,请考虑第二个选项。使用curl,您甚至可以像在HTML表单中一样上传文件。如果你想不接收接收脚本,这是最好的解决方案。 – 2010-04-18 10:18:11

0

可以用于几乎支持使得GET/POST请求(PHP,Python和猛砸,卷曲,Java的...)任何语言编写一个CLI脚本并执行同一呼叫提交表单会做.. 。

Supose 2个文本框的形式:Foo和Bar

有2大案要案: