2011-11-25 100 views
0

這工作:爲什麼這個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沒有被recorgnized,但可以看作是一個字符串一些原因。

所以,我想這一點:

$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

回答

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)); 
+0

第二屆一個僅僅是工作的一個。 – TK123

+0

@ JakeRow123出於好奇,爲了讓第二個工作,你使用$ file_name而不是$ sprintf中的文件名? – Bryan

+0

@Bryan是啊我必須將變量名更改爲$ file_name,這是回答者的錯誤。 – TK123

1

不,您應該使用單引號才能正確轉義。

0

您可以添加支架,使其工作:

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