为什么这个PHP字符串逃脱了?

时间:2011-11-25 20:50:58

标签: 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\uploads\$file_name-thumb.jpg";

    exec($command);

但是$file_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);

但这引发了一堆语法错误。

如何正确转义此字符串?通过转义,我只是指如何将其与变量$file_name一起使用。

3 个答案:

答案 0 :(得分:1)

不,你应该使用单引号来正确逃脱。

答案 1 :(得分:1)

请尝试以下规则:

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

或:

$command = "convert C:\wamp\www\site\uploads\%s.jpg -resize 40x30 ^ C:\wamp\www\site\uploads\%s-thumb.jpg";
exec(sprintf($command, $filename, $filename));

答案 2 :(得分:0)

您可以添加括号以使其有效:

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