PHP에서 TCL 스크립트를 실행하려고합니다. 나는 통신을 위해 PHP의 proc_open을 사용하고 있습니다. 그러나 tcl 스크립트의 결과를 얻을 수 없습니다. 코드를 통해 누군가 내가 잘못 가고 있는지 알려 줄 수 있습니까?PHP에서 proc_open 함수 사용
당신은 응용 프로그램 (fwrite($pipes[0], "source sum.tcl\n")
), 즉 원인이 될 수 있습니다에 줄 바꿈을 통과하지 않는
<?php
$app = 'tclsh84.exe';
$spec = array(array("pipe", "r"), array("pipe", "w"), array("pipe", "w"));
$process = proc_open($app, $spec, $pipes);
if (is_resource($process))
{
fwrite($pipes[0], 'source sum.tcl ');
fwrite($pipes[0], 'tclsh test.tcl ');
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
// echo fread($pipes[1],1024).'<hr>';
proc_close($process);
}
?>
//sum.tcl
proc sum {arg1 arg2} {
set x [expr {$arg1 + $arg2}];
return $x
}
//test.tcl
puts " the sum is [sum 10 9 ] "
오류 파이프에서 무엇을 볼 수 있습니까? –
"tclsh"는 Tcl 명령이 아닙니다. "source test.tcl"을 원하셨습니까? –
오류가 표시되지 않습니다. 방금 브라우저에 빈 페이지가 생깁니다. tclsh는 명령이며 tcl 파일을 실행하는 데 사용됩니다. – Vidya