Filemaker:调用PHP代码的脚本

|| 如何编写调用PHP代码的脚本? 该脚本应包含Filemaker数据库中的记录。     
已邀请:
        您可以使用\“从URL插入\”脚本步骤来调用PHP并使其执行某些操作。我能够在服务器端脚本中使用它来调用带有URL中某些参数的PHP脚本。这使我可以让Filemaker与另一个服务的PHP API进行通信。不知道这是否回答了您的问题(或什​​至还是一个问题),但我想与您分享。     
        我有一个类似的问题,我想要一个FileMaker操作来触发一个脚本,该脚本会警告网站某些更改。我在FileMaker Pro 11中工作,因此不能选择“ 0”(尽管我希望如此)! 我创建了一个名为Sync的FileMaker脚本,并执行了一个操作:
Perform AppleScript
(显然,这仅适用于Mac;您可以在Windows中使用
Send DDE Execute
来实现类似的功能)。 在“脚本步骤选项”中,将我的
Perform Applescript
设置为
Calculated AppleScript
,并将其设置如下:
\"do shell script \\\"curl http://example.com/sync.php?id=\" & Get( RecordID ) &
\"\\\\\\&layout=\" & GetAsURLEncoded( Get( LayoutName ) ) & \"\\\\\\&table=\" & 
GetAsURLEncoded( Get( LayoutTableName ) ) & \"\\\"\"
注意所有引号和引号转义。 要使此操作在发生更改时执行,请转至文件»管理»布局,然后选择用户可能在其中编辑记录的布局,然后单击
Edit
。在出现的“布局设置”对话框中,转到
Script Triggers
,并为事件
OnRecordCommit
选择刚刚创建的同步脚本。 现在,只要在该布局中修改了一条记录,就会运行Sync脚本,该脚本执行AppleScript,后者执行shell命令“ 9”,并发送GET请求,其效果如下:
curl http://example.com/sync.php?id=123&layout=Edit%20Records&table=Records
在此处创建一个
sync.php
,以便使用
$_GET[\'id\']
$_GET[\'layout\']
$_GET[\'table\']
或类似的传递变量在每次加载时进行智能处理。 使用此方法的一个警告是,在执行Shell脚本时冻结了FileMaker,在这种情况下,这意味着直到curl收到响应或超时为止。尽管您可以将超时设置为非常低的值(添加参数
--output /dev/null --silent --head --fail --connect-timeout 1
),但仍会导致用户延迟一秒钟左右,如果用户正在编辑大量记录,这会很明显。如果有人对此有解决方案,或者有办法使脚本在后台异步运行,请告诉我。     
        是的,有一个适用于FileMaker的PHP API: http://www.filemaker.com/downloads/pdf/article2_php.pdf     
        在为自己的文件添加编码之前,请尝试使样本API代码与FMServer_Sample数据库一起使用。     

要回复问题请先登录注册