2010-04-18 92 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大案要案: