我需要使用symfony从网页打开和编辑.txt。我已经尝试了所有方法,但是我所能做的最大的就是打开一个外部文本编辑器,并在那里显示文件的内容。但这会导致在打开编辑器时,页面的响应时间正在计数,如果我花费的时间超过30秒,则会给我执行时间错误。
这是编辑器与文件一起使用的代码:
/**
* @Route("/exeBlack", name="exeBlack", methods="GET|POST")
*/
public function exeBlack()
{
chdir("c:\WINDOWS");
exec('notepad.exe C:\xampp\htdocs\sgisi-master\public\archivo\UNAHBlacklist\Blacklist.txt');
return $this->render('Default/dashboard.html.twig');
}
此代码在控制器中,我通过一个按钮调用它。
我怎样才能使页面完成渲染,并且文本编辑器正在运行并且不计算响应时间并不重要?
答案 0 :(得分:-2)
也许passthru()
会更好地满足您的要求。
另外,如果您仔细阅读official documentation中的exec
函数,则可以看到建议多平台解决方案的第一条评论:
function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}
以及许多其他代码示例。
但是实际上您的任务看起来是非常糟糕的做法的示例。我想您只需要将其用于学习/测试目的,而不会在生产中使用。