如何从PHP执行tcl脚本?

时间:2009-08-20 03:44:23

标签: php tcl

我需要从PHP执行TCL脚本。目前我正在使用以下代码

<?php 
echo passthru("tclsh83 Testcases/source.tcl ");
?>

这很有效。但这会为每个调用创建一个shell。如何打开shell并在TCL脚本之间进行通信。任何指针将不胜感激。

此致 Mithun

2 个答案:

答案 0 :(得分:0)

  

我知道了将值从php脚本传递到TCL脚本passthru的方法(“tclsh83 Testcases / source.tcl $ arg1 $ arg2”); //命令行参数有没有更好的方法来执行TCL脚本?谢谢,Mithun

那么这种方式有什么不对?如果您始终只传递2个参数并且它们来自可靠来源,那么这是最好的方法。如果没有,您可以拥有一个参数数组,使用escapeshellarg()转义它们,join()它们并将结果放入命令字符串。例如:

$params = array( /* <...> */ );
echo passthru('tclsh83 Testcases/source.tcl ' .
              join(' ', array_map('escapeshellarg', $params)));

答案 1 :(得分:0)

如果要将大量数据发送到tcl脚本,则可以使用proc_open()打开读写管道。然后,在tcl脚本中,使用gets stdin varname从stdin读取一行。