我有一个简单的Hello世界命令行应用程序,我试图通过PHP执行,但我不知道如何切换到应用程序的调试文件夹,然后运行可执行文件。到目前为止,我已经尝试使用popen
来移动终端所在的位置,但是在我已经完成的方式中看起来不正确,然后使用exec
来执行该命令。通过参数与命令行路径可执行文件与PHP
继承人我的PHP文件:
<?php
$loc = '/Users/dave/Library/Developer/Xcode/DerivedData/HelloWorld-akuofooecqboeybtsfalcrelvfjt/Build/Products/Debug';
$argv = "./HelloWorld j";
popen($loc, 'r');
echo exec($argv);
而且我的继承人C++命令行程序:
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
if(argc < 2)
{ printf("Please enter a value \n");
return -1;
}
std::cout << argv[1]<<"\n";
std::cout << "Hello, World!\n";
return 0;
}
所在的目录,这样做的debug文件夹是/Users/dave/Library/Developer/Xcode/DerivedData/HelloWorld-akuofooecqboeybtsfalcrelvfjt/Build/Products/Debug
和执行该我用./HelloWorld x
(轻微请注意,如果HelloWorld
应用程序有空间,这将如何工作?)
一切工作正常,当我做从终端运行它,所以它不是一个C++文件的问题。
那么有人可以告诉我怎么才能从php执行这个应用程序?
如何将这项工作?如果系统没有被使用,而我不在正确的目录中,它不会给我一个答案。 – user3144542
您必须将您的可执行应用程序放入预定义的目录中。例如在你的PHP应用程序的目录中。其目录是否动态变化? –
你可以很容易地做到:system('PATH/HelloWorld j') –