2017-11-24 1 views
1

PHP exec()를 통해 C++ 함수에 전달하려고하는 base64 이미지 문자열이 있습니다. 그러나 문자열 내부에 공백이 있으면 exec()가 작동하지 않습니다.PHP exec()를 통해 텍스트 문자열 보내기

$data="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAImCAMAAACSFogBAAAAAXNSR0IArs4c"; 
list($type, $data) = explode(';', $data); 
list(, $data)  = explode(',', $data); 
exec('./hello'.$data, $out,$return); 
if(!$return) 
{ 
echo 'created'; 
} 

else 
{ 
echo 'not created'; 
} 
+0

'./hello '. $ data' 사이에 공백이 없으면 단지 방대한 파일 이름으로 param으로 전달되지 않으므로 작동하지 않을 것입니다. 또한 왜'str_replace ('data : image/png; base64,', '', $ str)가 아닌가? –

+0

그래서 exec 줄을 변경하십시오 :'exec ("./ hello $ data", $ out, $ return);'hello 뒤에 공백이 생겼습니다. – Nic3500

+0

귀하의 질문은 무엇입니까? $ data 안에 공백이 있으면 어떨까요? – Nic3500

답변

0

사용해보십시오 : 대신 상대 간부 인 방법의

$data = str_replace(" ", "\ ", $data); 
exec('"./hello'.$data.'"', $out, $return); 

합니다.

P .: 모든 명령이 큰 따옴표 안에 있으면 바꾸기가 필요한지 아닌지 잘 모르겠습니다. 바꾸기와 바꾸기를 시도해보십시오.

관련 문제