看板 PHP 關於我們 聯絡資訊
我寫了一個cmd.php內容如下 <?php $compiler="C:\Dev-Cpp\bin\g++.exe"; $code="C:\xampp\htdocs\project\tmp\a002.cpp"; $target="C:\xampp\htdocs\project\tmp\a.exe"; $command="C:\WINDOWS\system32\cmd.exe $compiler $code -o $target"; system($command); ?> 在cmd.exe裡面輸入過 "C:\Dev-Cpp\bin\g++.exe C:\xampp\htdocs\project\tmp\a002.cpp -o C:\xampp\htdocs\project\tmp\a.exe" 有編譯成功 檔案也有出現 但用PHP呼叫就無法成功 只顯示 Microsoft Windows XP [版本 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\xampp\htdocs\Project> 的字樣 a.exe也沒有出現在資料夾裡 不知道是哪邊出了問題 另外我測試了用php system()去呼叫預先編譯好的exe檔 <?php system('C:\xampp\htdocs\project\tmp\a.exe 5 10'); ?> 這程式的功能是輸出兩個input的差值 但php網頁上沒有回傳任何結果 C++的程式長這樣 #include<iostream> using namespace std; int main() { long long int a,b,c; while(cin >> a, cin >> b) { c=a-b; if(c<0) c=-c; cout<< c<<endl; }} 問題不知道出在哪邊 有請高手解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.154.128 ※ 編輯: saponevol23 來自: 114.39.154.128 (09/05 13:57)
bibo9901:\改成\\ 09/05 14:53
saponevol23:都改成\\了 可是結果還是一樣@@ 09/05 15:15
cceHunteR:權限問題? 09/05 15:28
saponevol23:我有找到php.ini了 要改哪邊啊? 09/05 16:15
bibo9901:不用呼叫cmd.exe, 直接system("$compiler ....")就好 09/05 20:35
ileadu:system()改用passthru() 09/05 20:56
qwertmn:直接改資料夾權限 chmod 777 這樣試試看? 09/05 22:37
saponevol23:我照bibo大的意見直接呼叫g++ 檔案終於出現了!! 09/05 22:49
saponevol23:也感謝樓上兩位的意見 09/05 22:50
saponevol23:那另外一個問題有人知道問題出在哪嗎 09/05 22:55
不好意思 我又有新問題了="= 剛剛故意把cpp檔寫錯 想在網頁上看到php呼叫g++編譯後傳回來的錯誤訊息 但網頁上甚麼文字都沒有出現 這跟權限有關係嗎 另外我是用Windows ※ 編輯: saponevol23 來自: 114.39.154.128 (09/05 23:25)
bibo9901:可能你g++送回來的訊息, 最後一行是空行, 而system()只抓 09/07 11:31
bibo9901:最後一行 09/07 11:31
但我嘗試過用passthru()來呼叫 輸入passthru(dir);的時候有顯示資料夾內容 改成編譯的路徑卻又沒有東西了 我的safe_mode有關掉 還是有哪些地方需要調整嗎? ※ 編輯: saponevol23 來自: 114.39.168.203 (09/07 14:37)