如何从PHP调用Tcl脚本

目前,我想调用位于服务器A中的工具命令语言脚本

当用户浏览服务器B中托pipe的网站时。例如,当用户点击一个button时,我想让php文件执行位于服务器B中的Tcl脚本。

我怎么做?

先谢谢你。

使用PHP执行操作符 (注意,您应该非常小心 – 如果可能,限制为有效的脚本,而不是让用户在GET或POSTvariables中指定任意命令)。

例:

http://myserver.com/php_scriptname.php?tcl_call=asdf.tcl

 <?php if ( !file_exists("/path/to/tclsh") ) { die('unable to access TCL interpreter - check user permissions for UID ' . getmyuid() ); } switch ( $_GET['tcl_call'] ) { case 'asdf.tcl': `/path/to/tclsh /path/to/asdf.tcl` break; default: die('invalid script called'); break; } ?> 

编辑:

你的问题目前为:

当用户浏览服务器B中托pipe的网站时。例如,当用户点击一个button时,我想让php文件执行位于服务器B中的Tcl脚本。

…但是如果您想在服务器“A”上调用脚本,则可以设置一个SSH密钥 ,然后从服务器“B”上的脚本调用SSH,例如:

  case 'asdf.tcl': `ssh phpuser@servera '/servera/path/to/tclsh /servera/path/to/asdf.tcl'` break; 

(单引号反引号)

请注意,您可以将执行操作符返回的内容存储在variables中,或将其回显 – 您可能需要回显返回值,并在运行debugging的每个命令末尾包含2>&1