我在托管服务器上有一个C++二进制文件(由Arvixe托管)。我在我的网站上有一个表单,需要3个输入。我使用PHP将这3个输入放入一个文件中。我试图从PHP中调用我的C++应用程序。该应用程序需要2个参数,第一个是包含输入的文件,第二个是输出文件。
当我在终端上运行时,该应用程序在我的Mac上运行良好,但将其放在托管服务器上时无法正常运行。
以下是我的脚本中的PHP代码:
当我在终端上运行时,该应用程序在我的Mac上运行良好,但将其放在托管服务器上时无法正常运行。
以下是我的脚本中的PHP代码:
$user = JFactory::getUser();
$time_date = date("m-d-Y").time();
$file1 = "model1_".$user->id."_".$time_date."_input.txt";
$file2 = "model1_".$user->id."_".$time_date."_output.txt";
$path1 = "/home/hhansen/public_html/ads/".$file1;
$path2 = "/home/hhansen/public_html/ads/".$file2;
$file_handle = fopen($path1,'w');
$content = trim($_POST['form']['Input 1'])."\r\n";
$content .= trim($_POST['form']['Input 2'])."\r\n";
$content .= trim($_POST['form']['Input 3'])."\r\n";
fwrite($file_handle,$content);
fclose($file_handle);
$output = exec("/home/hhansen/public_html/ads/./model1 $path1 $path2",$retval);
有人能否解释一下?输入文件是直接创建的。我在服务器上对应用程序有执行权限。我不确定可执行文件是否根本没有运行,还是由于权限问题或其他原因没有产生输出。
- 我的语法有问题吗?
- 我使用了错误的函数吗?
- 在PHP中应该使用什么来向终端发送命令并执行它?