为什么赢了';这个PHP字符串转义对吗?

为什么赢了';这个PHP字符串转义对吗?,php,Php,这项工作: $command = "convert C:\wamp\www\site\uploads\a.jpg -resize 40x30 ^ C:\wamp\www\site\uploads\a-thumb.jpg"; exec($command); 由于我使用双引号,我认为这也会起作用: $command = "convert C:\wamp\www\site\uploads\$file_name.jpg -resize 40x30 ^ C:\wamp\www\site\upl

这项工作:

$command = "convert C:\wamp\www\site\uploads\a.jpg -resize 40x30 ^ C:\wamp\www\site\uploads\a-thumb.jpg";

exec($command);
由于我使用双引号,我认为这也会起作用:

    $command = "convert C:\wamp\www\site\uploads\$file_name.jpg -resize 40x30 ^ C:\wamp\www\site\uploads\$file_name-thumb.jpg";

    exec($command);
但是,
$file\u name
var没有被重新组织为这样,但出于某种原因它被视为一个字符串

所以我试了一下:

$command = "convert C:\wamp\www\site\uploads\".$file_name.".jpg -resize 40x30 ^ C:\wamp\www\site\uploads\".$file_name."-thumb.jpg";

exec($command);
但这会引发一系列语法错误


如何正确地转义这个字符串?通过escape,我的意思是如何将它与变量
$file\u name

一起使用。不,您应该使用单引号将其正确转义。

您可以添加括号使其工作:

$command = "convert C:\wamp\www\site\uploads\{$file_name}.jpg -resize 40x30 ^ C:\wamp\www\site\uploads\{$file_name}-thumb.jpg";

尝试使用以下规则:

$command = "convert C:\wamp\www\site\uploads\{$file_name}.jpg -resize 40x30 ^ C:\wamp\www\site\uploads\{$file_name}-thumb.jpg";
exec($command);
或:


@JakeRow123出于好奇,为了让第二个开始工作,您是在sprintf中使用$file\u name还是$filename?@Bryan是的,我不得不将变量名更改为$file\u name,这是回答者的一个输入错误。
$command = "convert C:\wamp\www\site\uploads\%s.jpg -resize 40x30 ^ C:\wamp\www\site\uploads\%s-thumb.jpg";
exec(sprintf($command, $filename, $filename));