2011-11-25 6 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); 

을하지만이 구문 오류의 무리를 던졌습니다.

이 문자열을 올바르게 이스케이프하려면 어떻게해야합니까? 도주 (escape)를하면 변수 $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

2 하나 일 만입니다. – TK123

+0

@ JakeRow123 두 번째로 작동 시키려면 sprintf에서 $ file_name 대신 $ filename을 사용 했습니까? – 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"; 
관련 문제