我正在寻找一种可能性,在 proc_open(exec、passthru 或其他)的帮助下通过管道将混合 PHP 多行字符串发送到 bash 脚本。最后,在这个脚本中,我想获取混合的多行字符串并将其存储到一个变量中。
PHP:
// static way
$some_multiline_string = 'some $%§%& mixed &/(/(
content
with newlines';
// dynamic way:
// the mixed content is coming from the database
// so actually it is not initialized like in the previous lines, but more like this:
$some_multiline_string = $db_result['some_multiline_string'];
// escaping
$some_multiline_string = escapeshellargs($some_multiline_string);
// execution
$process = proc_open("printf $some_multiline_string | some_script.sh args");
...
重击:
#!/bin/bash
mixed_multiline_string=$(</dev/stdin)
echo -e "$mixed_multiline_string"
...
如何在命令中使用混合内容之前正确转义它?我已经尝试过 escapeshellargs 和 escapeshellcmd,但要么有一个未转义的字符,它正在停止进程,要么它正在工作,但处理时间太长(1.5 分钟)。
这是一个示例混合内容字符串的链接:http: //playmobox.com/js/test.txt
非常感谢!