Filemaker:调用PHP代码的脚本

时间:2011-06-14 12:24:49

标签: filemaker

如何编写调用我的PHP代码的脚本? 此脚本应包含Filemaker数据库中的记录。

4 个答案:

答案 0 :(得分:1)

您可以使用"从网址插入"脚本步骤调用PHP并使其执行某些操作。我能够在服务器端脚本中使用它来调用带有URL中的一些参数的PHP脚本。这让我可以让Filemaker与另一个服务的PHP API交谈。不确定这是否能回答你的问题(或者它是否仍然是一个问题),但我认为我会分享。

答案 1 :(得分:1)

我遇到了类似的问题,我想要一个FileMaker操作来触发一个脚本,该脚本会提醒网站某些内容已经发生变化。我在FileMaker Pro 11中工作,所以Insert from URL不是一个选项(虽然我希望它如何)!

我创建了一个名为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,选择刚刚创建的同步脚本。

现在每当在该布局中修改记录时,将运行同步脚本,该脚本执行执行shell命令curl的AppleScript,发送GET请求以达到以下效果:

curl http://example.com/sync.php?id=123&layout=Edit%20Records&table=Records

从那里开始,使用sync.php$_GET['id']以及$_GET['layout']或类似的传递变量,创建$_GET['table']以便在加载时执行智能操作。

使用这种方法的一个警告是FileMaker在shell脚本执行时被冻结,在这种情况下意味着直到curl接收响应或超时。虽然您可以将超时设置得非常低(添加参数--output /dev/null --silent --head --fail --connect-timeout 1),但它仍然会导致用户延迟一秒左右,如果用户正在编辑大量记录,这可能会很明显。如果有人有这方面的解决方案,或者导致脚本在后台异步运行的方法,请告诉我。

答案 2 :(得分:0)

是的,FileMaker提供了一个PHP API:

http://www.filemaker.com/downloads/pdf/article2_php.pdf

答案 3 :(得分:-1)

在为自己的文件添加编码之前,请尝试获取示例API代码以使用FMServer_Sample数据库。