PHP exec() 또는 system() (또는 다른 유사한 함수)을 사용하여 배치 파일을 실행하려고하는데, 이것들을 돌려 주려고하는 것 같습니다.PHP exec() 및 system() 함수는 항상 IIS에서 false를 반환합니다.
내가 본 가장 간단한 예는 아무것도 출력하지 않는이있다 : PHP와 스크립트는 IIS의 Windows XP 시스템에서 실행되는
<?php
echo system('dir');
?>
를 설치하고 또한 호스팅 내 공유에 그것을 시도했습니다 windows 2003 server/IIS를 실행하는 계정.
누구나 내가이 작업을 수행하거나 문제 해결에 사용할 수있는 명령을 제공해야한다고 제안 할 수 있습니까?
건배,
톰
편집 :
<?php
$last_line = system('dir', $retval);
echo 'last_line '.$last_line.'<br/> retval '.$retval;
?>
출력은 다음과 같습니다 :
last_line
retval -1
pavun_cool의 답변에 따라 두 번째 예
나는 다음과 같은 시도
편집 : 세 번째 예
마 노스 Dilaverakis 기준 I는 다음과 같은 코드를 시도
<?php
exec('dir', $response);
foreach($response as $line) {
echo $line . "<br>";
}
?>
출력은 :
<br>
즉 브라우저에 빈 줄이 표시됩니다.
또한 php.ini
에서 찾고, (아마도 이러한 기능을 비활성화 할 수 있습니다) 다음 줄이 비어 :
disable_functions =
사람이 더 제안이나 내가 시도 할 수 있습니다 무엇을해야합니까?
을 변경해야 의미는 php.ini에서 비활성화 ... 간부 및 시스템 응답에 PHP의 매뉴얼 페이지 이. 당신은 심지어 아래로 스크롤하지 않아도됩니다 –
@Manos Dilaverakis - 좀 더 구체적 일 수 있습니까? exec 함수의 텍스트에는 "반환 값 : 명령 결과의 마지막 줄"이 표시됩니다. - 내가 실행 한 결과의 마지막 줄을 보지 말아야합니까? – Loftx