有一个调用系统命令的PHP脚本;它需要处理一些用户必须输入的数据。重击示例:
#!/usr/bin/env bash
echo 'Enter something:'
read someString
echo ${someString}
如何someString在 PHP 中获取变量的值?
不工作
#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
system('read someString');
echo exec('echo ${someString}') . "\n";
不工作
#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
system('read someString');
echo getenv('someString') . "\n";
不工作
#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
$someString = exec('read someString');
echo $someString . "\n";
不工作
#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
$someString = shell_exec('read someString');
print_r($someString);
我在网上找到的唯一选择是将变量的值保存到文件中,然后从那里获取:
#!/usr/bin/env php
<?php
echo 'Enter something:' . "\n";
system('read someString; echo -n ${someString} > /tmp/some-string');
$someString = file_get_contents('/tmp/some-string');
system('rm /tmp/some-string');
echo $someString . "\n"; // It works!
第七感告诉我,这不是怎么做的。
所以你需要通过shell-exec()函数来拉bash http://php.net/manual/en/function.shell-exec.php