3

私はphpファイルを介してシステムコマンドを使用していました..cd \は機能していましたが、数回試行した後、突然停止しました:| 私が何をしようと

<?php
    $command = array("cd \","dir"); 
    $result = system($command[0], $return);
?>
4

7 に答える 7

3

Windows はスラッシュとバックスラッシュ/をサポートしている\ため、スラッシュのみを使用することで相互互換性が確保され、長期的には問題が軽減されます。

<?php
    $command = array("cd /","dir");
    $result = system($command[0], $return);
?>

Wiki Path_Computing


エラーがある場合は、問題がディレクトリのスラッシュではない可能性があるため、投稿してください。以前は機能していたとのことです。

于 2010-11-28T14:36:47.803 に答える
2

私は問題を理解したと思います。PHPのsystem()コマンドは、cmd.exeのインスタンスを作成せず、代わりにコマンドを実行して終了するだけです。そのため、CDコマンドを使用してディレクトリを変更すると、system()によって作成されたインスタンスのディレクトリが変更されてから終了します。私の理論が正しいことを願っていますxD

于 2010-11-28T22:51:20.703 に答える
2

試す

$command = array("cd \\","dir"); 
于 2010-11-28T14:31:16.880 に答える
0

Linux mod で:

$command = array("cd \\","dir");

ウィンドウズモッドで:

$command = array("cd /","dir");
于 2010-11-28T14:36:30.337 に答える
0

\私のテスト (Win 7 および XP) では、ディレクトリをエスケープする (つまり、\\代わりに使用する)必要があることがわかりました。または、スラッシュを使用できます。また、システムコールの代わりにPHP のchdir関数を使用してみませんか?

<?php
    echo getcwd() . "\n";
    chdir("\\");
    echo getcwd() . "\n";
?>

コメント「...ブラウザでコマンドを作成しようとしています...」に応じて編集します。システム関数は、指定したコマンドを実行して返すだけです。システム コマンドを呼び出したプロセスには (直接) 影響しません。したがって、ディレクトリを変更するコマンドを含むシステム コールは、実行中の PHP プログラムの作業ディレクトリに影響を与えません。

于 2010-11-28T14:43:13.237 に答える
0

PHP には独自のディレクトリ変更コマンドがあります: http://us3.php.net/manual/en/function.chdir.php。ただし、それはまさにあなたが望むことをしないかもしれません。

于 2010-11-28T14:41:04.697 に答える