2011-04-05 96 views
0

我有一臺Mac服務器用於託管我的網站。 我使用PHP創建了一個基本上用於創建約會的網頁。該頁面允許用戶選擇約會的日期和時間,並單擊提交按鈕將其發佈到服務器。 我能夠在服務器端收到選定的值。Mac服務器 - 從PHP調用applescript/automator

現在我想編寫蘋果腳本或創建automator動作,它將通過PHP頁面接收的數據在我的iCal中創建一個條目。

如何使用我在PHP頁面中收到的詳細信息在我的mac服務器中創建約會? 我是否以正確的方式思考用戶蘋果腳本或自動添加預約給我的?

回答

2

您可以

shellexec("osascript /path/to/script.scpt arguments");

不是運行的AppleScript從返回的變量抓住它輸出。

+0

這應該工作,但請記住,用戶與iCal的副本,你想添加事件_必須永遠登錄這個工作(例如它不會工作從登錄窗口或w /密碼保護的屏幕保護程序運行)。 – morgant 2011-04-05 11:30:58

0

我不知道如何AppleScript的工作,但如果你只是想發出一個命令行命令,你可以使用system()

0

解決此問題的另一種方法是,不是從PHP調用AppleScript並嘗試圍繞可能導致其失敗的所有邊緣情況進行編程(用戶在服務器上執行其他操作,沒有用戶登錄,AppleScript服用運行時間太長等等),應該是讓服務器爲每個約會寫出一個iCal文件到一個特定的目錄。然後定期運行iCal/Automator動作(例如每5分鐘),從該目錄導入新的約會iCal文件,並在導入iCal後將其刪除。

至於創建的iCal文件從PHP去,似乎有許多圖書館在那裏,提供此功能,包括:BenuuqCaliCalcreatoriCal Maker,甚至更多。其中任何一個都應該允許您生成與iCal兼容且易於導入的.ics.ical文件。一個iCal文件當然比試圖將諸如名稱,日期&時間,位置等數據的各個位傳遞給AppleScript更方便。

而且,爲了定期運行AppleScript/Automator操作,您可以使用優秀的Lingon應用程序,儘管它現在只是App Store。您也可以手動編寫launchd.plist文件(請參閱man launchd.plist)。