긴 문자열이 포함 된 변수가 있습니다. (구체적으로 자바 스크립트 코드 몇 킬로 바이트 포함)PHP에서 변수 물마루의 내용을 외부 명령에 전달하는 방법은 무엇입니까?
이 문자열을 외부 명령 (이 경우에는 javascript-compressor)에 전달하고 PHP에서 외부 명령 (압축 된 javascript)의 출력을 캡처하고 싶습니다. 그것을 변수에 할당합니다.
PHP에서 자바 스크립트를 압축하는 클래스가 있다는 것을 알고 있지만 이것은 일반적인 문제의 한 예일뿐입니다.
는 원래 우리가 사용 :이 작은 문자열을 작동하지만, 안전하지$newvar = passthru("echo $oldvar | compressor");
. (oldvar가 쉘에 특별한 의미를 갖는 문자를 포함하면 아무 일도 일어나지 않을 수 있습니다.)
escapeshellarg로 이스케이프 처리하면 최대 허용 인수 길이에 대한 OS 제한 때문에 긴 문자열에 대한 해결책이 해결됩니다.
popen("command" "w")
을 사용해 보았는데 명령에 쓰려고 시도했지만 명령의 출력이 자동으로 사라집니다. 이 과정을 모두 표준 출력 및 표준 입력에 핸들을 얻을 따라서에 데이터를 작성하고 결과를 읽을 수 α- 함수 proc_open를 사용
$newvar = external_command($oldvar);