2010-11-28 3 views

답변

1

나는 문제를 발견했다. PHP의 system() 명령은 cmd.exe 의 인스턴스를 작성하지 않고 대신 명령을 실행하고 종료한다. 당신이 CD 명령 을 사용하여 디렉토리를 변경할 때 시스템()에 의해 생성 된 인스턴스 용맹 한 디렉토리가 다음 변경 한 이유 exits.i 내 이론을 희망 올바른의 xD

2

무엇 : 창에서

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

는 MOD :

$command = array("cd /","dir"); 
0

을 시도

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

Windows에서 Linux OS로 마이그레이션해야한다면, 많은 라인을 변경해야합니다. – RobertPitt

3

Windows 지원은 앞으로뿐만 아니라 / 슬래시 백 슬러 shes \ 슬래시를 사용하면 교차 호환이 가능하고 장기적으로는 악화되지 않아야합니다. 당신이 이전에 작업 한 말했기 때문에 문제가 파괴력 디렉토리하지 않을 수 있습니다으로


당신이 오류가있는 경우

Wiki Path_Computing

<?php 
    $command = array("cd /","dir"); 
    $result = system($command[0], $return); 
?> 
다음을 게시하시기 바랍니다.

0

PHP에는 자체 변경 디렉토리 명령이 있습니다 (http://us3.php.net/manual/en/function.chdir.php). 그러나 그것은 당신이 원하는 것을 정확하게하지 못할 수도 있습니다.

+0

http://lufi.dyndns-ip.com/cmd/?p=stackoverflow 내가 greenmatt에서 말한 것처럼 시스템 명령을 사용하고 싶습니다. 실제로 xp에서 실행 중입니다. – kapitanluffy

0

필자가 테스트 한 (Win 7 및 XP에서) \ (즉, \\을 사용)을 이스케이프 처리해야합니다. 또는 슬래시를 사용할 수 있습니다. 또한 시스템 호출 대신 PHP의 chdir function을 사용하지 않으시겠습니까? 주석에 응답

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

편집 ... "나는 브라우저 일에 cmd를 만들기 위해 노력하고 ...."다음 system function 단지 지정 명령 및 반환을 실행합니다. 시스템 명령을 호출 한 프로세스에는 (직접적으로) 영향을 미치지 않습니다. 따라서 디렉토리를 변경하라는 명령을 사용하는 시스템 호출은 PHP 프로그램의 작업 디렉토리를 실행하는 데 영향을 미치지 않습니다.

+0

http : //lufi.dyndns-ip .com/cmd/나는 xp에서 실제로 실행중인 시스템 명령 ..im을 사용하려고했습니다. – kapitanluffy

+0

이제는 슬래시를 사용하십시오.// – RobertPitt

+0

시도해 보았습니다. 백 슬래시도 사용했습니다. – kapitanluffy

0

입니다 수없는 이유는 당신이 사용자의 두 명령에 구분 기호를 사용하는 system()의 동일한 호출?

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