我想在php脚本执行期间更改默认系统$ PATH var,但由于某种原因失败。
我尝试以下方法:
<?php
$lastline = system('export PATH=$PATH:/customBin;',$return) OR die("why do i die all the time");
echo $lastline;
?>
但它显然一直在死。 (试过RHEL和Debian linux发行版,php版本5.3.xx,其他系统命令工作正常(cat,ls等)这些都不起作用:export PATH=$PATH:/customBin;
OR export PATH=$PATH:/customBin:
OR {{1} },所有这些都在shell中工作..)
感谢任何帮助。感谢。
编辑:以上代码错误,解决方法是使用export PATH=/customBin
答案 0 :(得分:3)
系统的return value
(不是返回参数)是命令输出的最后一行,如果失败则是布尔FALSE
。在你的情况下,它可能成功(你的$ return变量中有int 0
成功退出)并且没有返回任何内容(可能是空字符串),在你的或语句中评估为false并且执行死亡。如果要检查导出是否成功,请尝试
system('export PATH=$PATH:/customBin;', $return);
$return === 0 OR die('...');
或者如果你想使用系统的失败处理程序:
(system('export PATH=$PATH:/customBin;') !== FALSE) or die('...');
尚未对此进行测试,结果可能会有所不同。
答案 1 :(得分:2)
答案 2 :(得分:1)
使用system
的方法是创建一个新的shell环境,在其中设置PATH,然后离开它。
此外,您的成功检查已被破坏。该调用返回一个空字符串,然后无法通过条件检查。
据我所知,你无法操纵调用 php 的环境。