这个脚本中的逃生空间?

时间:2014-04-08 19:02:10

标签: php

我正在使用PHP创建此配置文件以生成可执行文件,并且当文件名没有任何空格时它可以正常工作,但是当文件有空格时它不起作用。

文件名在$ readyFile变量中。

我该怎么做才能解决这个问题?

$content = ";!@Install@!UTF-8!
Title=\"Auto-Extract\"
ExecuteFile=\"Runner.exe\"
ExecuteParameters=\"--exe 2999.exe --file $readyFile\"
;!@InstallEnd@!";
$fp = fopen("config.txt","wb");
fwrite($fp,$content);
fclose($fp);

由于

2 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式进行剥离。

$content=preg_replace('/\s+/', '', $content);

答案 1 :(得分:0)

您可以使用双重转义引号(\\\"):

$content = ";!@Install@!UTF-8!
Title=\"Auto-Extract\"
ExecuteFile=\"Runner.exe\"
ExecuteParameters=\"--exe 2999.exe --file \\\"$readyFile\\\"\"
;!@InstallEnd@!";

当PHP解析字符串时,它变为="--exe 2999.exe --file \"your file here\"",因此您的内部引号仍会被转义为呼叫中的呼叫。