1
我想溝通PHP和C++代碼。PHP和C++之間的通信
我需要在它們之間傳遞一個大的JSON。 問題是我目前使用「passthru」,但由於某些原因,我不知道,C++代碼沒有收到整個參數,但在JSON爲3156時被剪切爲528個字符。
通過執行測試,我能夠驗證「passthru」命令支持的字符數與3156一樣多。但我不知道C++中是否有最大輸入參數大小。
PHP應用程序如下:
passthru('programc++.exe '.$bigJSON, $returnVal);
的C++應用程序:
int main(int argc, char* argv[]){
char *json = argv[1];
}
有沒有什麼辦法來解決這個問題?我已經閱讀了PHP擴展和IPC協議,但問題是我必須做一個多平臺程序(我必須有一個版本的Windows,另一個Linux和Mac)。我認爲使用PHP擴展和IPC協議(據我所知)使事情複雜化了很多。
是'$ bigJSON' [逃脫](http://php.net/manual/en/function.escapeshellarg.php)是否正確?如果它包含字符528附近的未轉義空格,它可能成爲C++應用程序的第二個參數。 – rickdenhaan
而不是將它作爲參數傳遞我會使用[proc-open](http://php.net/manual/en/function.proc-open.php)輸入輸出流 –
我嘗試使用「escapeshellarg」,問題是,在Windows中,「espaceshellarg」從JSON中刪除雙引號。而且C++中的JSON解釋器需要它們=( –