Linux 上の C/C++ コードは、popen システム関数を通じて PHP コードを呼び出し、fgets 関数を通じて PHP コード エコーによって出力された文字列を取得できます。
//main.c char str[1024] = {0}; char * cmd = "php /src/test/c.php 1234"; FILE * stream = NULL; if ((stream = popen(cmd, "r")) == NULL){//通过popen执行PHP代码 return ""; } std::string ret = ""; while((fgets(str, 1024, stream)) != NULL){//通过fgets获取PHP中echo输出的字符串 ret += str; } pclose(stream); return ret;
ここで、cmdの「1234」はphpファイルに渡されるパラメータです。 PHP コードでは、通常の C 言語の main 関数と同様に、2 つのパラメーター argc と argv を介してこのパラメーター「1234」を取得できます。
// /src/test/c.php<?phpinclude_once(dirname(__FILE__).'/m.php');include_once(dirname(__FILE__).'/m/SpsTable.php');if ($argc != 2){ //和C/C++的main函数一样,参数有2个,第一个是php文件名,第二个是main.c中cmd字符串中的“1234” die();}array_shift($argv);//移除第一个参数,第一个参数是php文件名$spsFileId = (int)$argv[0];