从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在服务器上的执行情况哦。。。我们该怎么做呢?你能附加一些链接吗。。对不起,我对这个领域完全陌生。