【发布时间】:2011-11-11 23:46:36
【问题描述】:
我有一个包含长字符串的变量。 (特别是它包含几千字节的 javascript 代码)
我想通过一个外部命令传递这个字符串,在本例中是一个 javascript 压缩器,并在 php 中捕获外部命令(压缩的 javascript)的输出,并将其分配给一个变量。
我知道 php 中有用于压缩 javascript 的类,但这只是一般问题的一个示例。
我们最初使用的是:
$newvar = passthru("echo $oldvar | compressor");
这适用于小字符串,但不安全。 (如果 oldvar 包含对 shell 具有特殊意义的字符,那么任何事情都可能发生)
使用 escapeshellarg 转义可以解决这个问题,但由于操作系统对最大允许参数长度的限制,解决方案会中断更长的字符串。
我尝试使用popen("command" "w") 并写入命令 - 这可行,但命令的输出会默默地消失在空白中。
从概念上讲,我只想做相当于:
$newvar = external_command($oldvar);
【问题讨论】: