3

PATHを使用する前に一時的に変更するために、次のコードを使用してみexec()ました。

$s1 = getenv ('PATH');
putenv('PATH=c:\bins');
$s2 = getenv ('PATH');
putenv('PATH='.$s1);
$s3 = getenv ('PATH');
var_dump($s1);
var_dump($s2);
var_dump($s3);

スクリプトを初めて実行すると、すべてが期待どおりに機能します。出力は次のとおりです。

string 'C:\Program Files (x86)\'... (length=1400)
string 'c:\bins' (length=7)
string 'C:\Program Files (x86)\'... (length=1400)

PATHただし、このスクリプトを 2 回実行すると次の出力が生成されるため、このスクリプトの実行後に PHP が破棄されるようです。

boolean false
string 'c:\bins' (length=7)
string '' (length=0)

Windows で lighttpd と PHP 5.3 を fastcgi 経由で使用すると、この動作が発生します。Linux/Apache ではまだテストしていません。

次のアプローチは Windows では機能しません (& を使用しても): How to set $PATH in PHP?

OSにとらわれずに変更する方法を知っている人はいますPATHか?

4

1 に答える 1

1

set_include_path http://www.php.net/set_include_pathを探していると思います

<?php
//Set a new path
set_include_path('/usr/lib/pear');

// Works in all PHP versions
ini_set('include_path', '/usr/lib/pear');

//Add a new path to the already existing path throug get_include_path()
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>
于 2012-11-06T18:53:14.000 に答える