2012-11-02 3 views
1

shell_exec() 함수를 사용하여 파일을 PHP로 복사하고 있습니다 (Windows의 경우 IIS). 사용중인 명령은 다음과 같습니다.php shell_exec 파일 이름에 공백이있는 파일 복사

shell_exec("copy ..\\images\\$image_url temp\\$filename\\media\\image1.png"); 

이미지 이름 ($ image_url)에 이름에 공백이 없어야 작동합니다. 그러나 이미지의 이름에 공백이 있으면이 작업은 실패합니다.

어떻게하면 $ image_url에서 벗어날 수 있는지 알 수 있습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

2

이 시도 :

shell_exec("copy \"..\\images\\$image_url\" \"temp\\$filename\\media\\image1.png\""); 

Basicly, 그것은 명령 프롬프트에 같아요. 매개 변수에 공백이 있으면 주위에 따옴표를 써야합니다. 매개 변수 주변 - 공간 주변이 아닙니다. ;-) copy 명령은 어떻게해야 하나의 매개 변수가 끝나고 다른 매개 변수가 시작되는지 알 수 있습니다.

또한 $image_url$filename이 안전한지 확인하십시오. 사용자가 내용에 영향을 미칠 경우 시스템에서 아무 것도 할 수 있습니다. 조심해!

+0

감사합니다 ... – antnewbee

0

""을 (를) ""와 함께 표시하십시오.

shell_exec("copy ..\\images\\".str_replace(" ", "\ ", $image_url)." temp\\".str_replace(" ", "\ ", $filename)."\\media\\image1.png"); 
관련 문제