程式:
PHP (index.php):
<?php //傳遞變數給exe執行檔 $text = exec("chello\\chello.exe Hello PHPBoxy", $arr); //印出陣列大小 echo count($arr)."<br /><br />"; //印出陣列結果 foreach($arr as $value) echo $value."<br />"; //僅印出最後一行 echo "<br />".$text; ?>
C (chello\chello.exe):
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char** argv) { char str1[1024], str2[1024], str3[1024]; if(argc > 1) { strncpy(str1,argv[0],sizeof(str1)-1); strncpy(str2,argv[1],sizeof(str2)-1); strncpy(str3,argv[2],sizeof(str3)-1); printf("%s\n%s\n%s", str1, str2, str3); } else { printf("%d\n", argc); } return (EXIT_SUCCESS); }
輸出結果:
說明:
利用PHP傳遞『Hello』與『PHPBoxy』兩個字串給執行檔接收,
再經由C/CPP程式printf回傳給PHP三行字串內容,
注意當argv需要做字串的處理時必須要重新複製一份來進行修改,
若直接使用argv來做修改可能會導致資料錯誤的發生。
沒有留言:
張貼留言