[英]PHP system() howto export PATH
我想在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;
或export PATH=$PATH:/customBin:
或export PATH=/customBin
,所有這些都在外殼中工作。
任何幫助表示贊賞。 謝謝。
編輯:上面的代碼是錯誤的,解決方案是使用putenv('PATH=$PATH:/customBin');
系統的return value
( 不是返回參數)是命令輸出的最后一行,如果失敗則為布爾值FALSE
。 在您的情況下,它可能成功了(您在$ return變量中有int 0
表示成功退出)並且未返回任何內容(可能為空字符串),這在您的or語句中得出的值為false,並且執行了die。 如果要檢查導出是否成功,請嘗試
system('export PATH=$PATH:/customBin;', $return);
$return === 0 OR die('...');
或者如果您想使用系統的故障處理程序:
(system('export PATH=$PATH:/customBin;') !== FALSE) or die('...');
尚未測試,您的結果可能會有所不同。
您使用system
方法是創建一個新的Shell環境,在其中設置PATH,然后將其保留。
此外,您的成功檢查也已失效。 該調用將返回一個空字符串,這將使您的條件檢查失敗。
據我所知,您無法操縱調用php的環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.