Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Php脚本执行.exe文件时遇到错误_Php_Exe - Fatal编程技术网

从Php脚本执行.exe文件时遇到错误

从Php脚本执行.exe文件时遇到错误,php,exe,Php,Exe,可能重复: 我一直在尝试执行这一行echo exec('hi.exe$file',$results,$status)来自Php。其中,分配给$file的值是文件名hi.txt(即$file=hi.txt) 但每次我尝试用同一行运行代码时,它都会显示错误为$file file not found,其中就好像我在命令提示符下运行相同的hi.exe hi.txt 此外,如果我尝试使用文件名而不是php中的变量运行同一行,即exec('hi.exe hi.txt',$results,$status),

可能重复:

我一直在尝试执行这一行
echo exec('hi.exe$file',$results,$status)来自Php。其中,分配给$file的值是文件名hi.txt(即$file=hi.txt)

但每次我尝试用同一行运行代码时,它都会显示错误为
$file file not found
,其中就好像我在命令提示符下运行相同的
hi.exe hi.txt

此外,如果我尝试使用文件名而不是php中的变量运行同一行,即
exec('hi.exe hi.txt',$results,$status)
,浏览器将长时间保持执行而不给出输出


请有人告诉我哪里出了问题

您使用的是单引号,而不是双引号。更改echo exec('hi.exe$file',$results,$status)至:

echo exec("hi.exe $file",$results,$status);
或者用一个点,像这样:

echo exec('hi.exe '.$file,$results,$status);

在PHP中,使用单引号不会将
$file
转换为
hi.txt
;它只是作为文本字符串“$file”保留。使用双引号或点连接将
$file
实际展开为
hi.txt

单引号不展开变量。你可能是说:

echo exec("hi.exe $file",$results,$status);

您的意思是分配
$file=“hi.txt”
而不是
$filename
?是。。。对不起,我打错了,这里用的是“Interpolate”而不是“expand”,但不管怎样都是+1。(这个过程叫做变量插值。)我需要展开变量,因为我将$file变量作为用户输入。谢谢。。。使用双引号但是为什么浏览器要花这么多时间来执行.exe?有什么建议吗?浏览器不执行exe,服务器执行。您必须查看exe在服务器上的执行情况哦。。。我们该怎么做呢?你能附加一些链接吗。。对不起,我对这个领域完全陌生。