Как выполнить tcl скрипт из php? - PullRequest
1 голос
/ 20 августа 2009

Мне нужно выполнить скрипт TCL из PHP. На данный момент я использую следующий код

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

Это работает. Но это создает оболочку для каждого вызова. Как открыть оболочку и общаться туда-сюда из сценария TCL. Любые указатели будут оценены.

С уважением, Митхун

Ответы [ 2 ]

0 голосов
/ 20 августа 2009

Если у вас есть много данных для отправки в сценарий tcl, вы можете открыть каналы чтения и записи с помощью proc_open(). Затем в сценарии tcl используйте gets stdin varname для чтения строки из стандартного ввода.

0 голосов
/ 20 августа 2009

Я узнал, как передавать значения из сценария php в сценарий TCL passthru ("tclsh83 Testcases / source.tcl $ arg1 $ arg2"); // аргументы командной строки Есть ли лучший способ выполнить скрипт TCL? Спасибо, Митхун

Так что плохого в этом? Это лучший способ, если вы всегда будете передавать только 2 параметра, и они будут получены из надежного источника. Если нет, вы можете иметь массив параметров, экранировать их с помощью escapeshellarg (), присоединиться к ним и поместить результат в командную строку. Например:

$params = array( /* <...> */ );
echo passthru('tclsh83 Testcases/source.tcl ' .
              join(' ', array_map('escapeshellarg', $params)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...