如何从 php 执行 tcl 脚本?
我需要从 PHP 执行 TCL 脚本。目前我正在使用以下代码
<?php
echo passthru("tclsh83 Testcases/source.tcl ");
?>
这是有效的。但这会为每个调用创建一个 shell。如何打开 shell 并通过 TCL 脚本进行来回通信。任何指示将不胜感激。
问候, 米敦
I need to execute a TCL script from PHP. At the moment I am using the following code
<?php
echo passthru("tclsh83 Testcases/source.tcl ");
?>
This is working. But this creates a shell for each call . How do I open a shell and communicate to and fro from the TCL script . Any pointers will be appreciated .
Regards,
Mithun
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您有大量数据要发送到 tcl 脚本,您可以使用 proc_open() 打开读写管道。然后,在 tcl 脚本中,使用
gets stdin varname
从 stdin 读取一行。If you have lots of data to send to the tcl script, you could open read and write pipes with
proc_open()
. Then, in the tcl script, usegets stdin varname
to read a line from stdin.那么这种方式有什么问题吗?如果您始终只传递 2 个参数并且它们来自受信任的来源,那么这是最好的方法。如果没有,您可以拥有一个参数数组,使用 escapeshellarg() 对它们进行转义,join() 它们并将结果放入命令字符串中。例如:
So what's wrong about this way? It is the best way if you will always be passing only 2 parameters and they will be from a trusted source. If not, you can have an array of parameters, escape them using escapeshellarg(), join() them and put the result into the command string. For example: