[PHP/윈도우서버] 프로그램 내에서 같은 디렉토리의 다른 프로그램 실행시키는 방법?

qubick의 이미지

	$cmd = "C:\windows\system32\cmd.exe";
	if(!exec($cmd))
		echo "fail to call command";

찾아보니 대충 exec() 계열의 명령어를 사용하면 된다고 하는데요,

위 간단한 코드마저 실행이 안 되네요...
에러는 안 나는 걸 보면 exec()이 어디선가 실행되고 있긴 한데,
정작 위도우 콘솔 커맨드창이 안 열립니다.

윈도 익스플로러 주소창에만 저 패스를 적어줘도 새까만 창이 뜨잖아요.

지금까지의 답변들이 다 리눅스 서버 기반이라 제가 원하는 답을 찾기가 어렵네요.

jos77의 이미지


컴파일 에러나지 않나요? exec() 가 동작하다니... 아 C 니까 되려나?
ExecuteCommand() 로 알고 있습니다. winapi.h 던가...
아무튼 windows 명령어 찾아보시면 될겁니다...
windows 환경에서는 console 상태에서는 자기 windows handle 에 대한 권한이 없기 때문에 C 명령은 안 될겁니다... 아마도요

-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr

qubick의 이미지

완(전)소(용없는)녀(석)

if(!exec($cmd))
echo "fail to call command";

로 하면 아무 메시지 없이 다음 코드 수행,

if(exec($cmd))
echo "success to call command";

로 하면 진짜로 "success to call command" 메세지가 화면에 나오는 걸로 봐서 exec()이 동작하지 않는 건 아닌 것 같습니다. 오히려 말씀하신 ExecuteCommand()가 정의되지 않은 함수라고 나오면서 fatal error가 뜨네요.

초짜라 C니까 된다, 는 말씀이 무슨 뜻인지 모르겠네요.
php 인터프리터(컴파일러가 맞나요? 라인바이라인으로 해석해서 앞에서 에러 하나 걸리면 다음 에러가 안 뜨던데..)가 C로 짜여져서 C 명령을 인식한다는 뜻인가요?
지금 php소스는 html파일 확장자 안에 로 임포트해서 넣고 있는데요...

완(전)소(용없는)녀

qubick의 이미지

윈도우 헤더파일을 말씀하신 걸 보면,
지금 제가 C프로그램을 짜고 있다고 가정하고 말씀하신 것인지?
아니면 CGI...???

완(전)소(용없는)녀

jos77의 이미지

windows 프로그래밍 하려면 winapi 함수를 call 해야 하는데
exec() 같은 경우는 OS 에 의존하는 함수인데 php 나 웹언어는 explorer 에서 동작하는 거라서
특정 winapi 함수를 뭔가를 통해서 call 해야 되지 않을까 싶어서 ExecuteCommand() 를 언급한 거구요(Visual Studio ;;)
바로 winapi 함수를 call 할 수 없다면... 잘 모르겠네요 @_@

-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr

qubick의 이미지

완(전)소(용없는)녀(석)

PHP 레퍼런스에서 찾은 함수니까 winapi를 통하지 않고도 어쨌거나 쓸 수는 있을 것 같습니다.
당장 제가 그 방법을 몰라서 그렇지요;;

완(전)소(용없는)녀

pokev25의 이미지

http://php.net/manual/en/function.exec.php

권한문제같은거로 보입니다.

아래쪽에 리플에 보시면 쓸만한 소스를 찾으실 수 있을것 같네요

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.