현재 위치: > 최신 기사 목록> Pclose와 Popen을 함께 사용하는 방법? 기본적인 실용적인 예를 살펴 보겠습니다

Pclose와 Popen을 함께 사용하는 방법? 기본적인 실용적인 예를 살펴 보겠습니다

gitbox 2025-09-12
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 다음 단락은 기사의 내용과 관련이 없습니다.,접두사 샘플 코드로 사용할 수 있습니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이것은 기사의 미리보기 내용의 예입니다.\n"</span></span><span>;
</span><span><span class="hljs-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 시간:<span class="hljs-subst">$time</span></span></span><span>\n";
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
제목: [pclose그리고popen함께 사용하는 방법?기본적인 실용적인 예를 살펴 보겠습니다]
*/</span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"존재하다 PHP 가운데,popen() 그리고 pclose() 함수는 종종 시스템 명령을 실행하고 출력을 얻는 데 사용됩니다.。아래에서 가장 기본적인 예를 사용하여 사용법을 설명합니다.。\n\n"</span></span><span>;

</span><span><span class="hljs-comment">// 1. 사용 popen 프로세스를 엽니 다</span></span><span>
</span><span><span class="hljs-comment">// 'r' 模式表示我们将从命令가운데读取输出</span></span><span>
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">popen</span></span><span>(</span><span><span class="hljs-string">"ls -l"</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>); </span><span><span class="hljs-comment">// 존재하다 Windows 변경할 수 있습니다 'dir'</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$handle</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"프로세스를 열 수 없습니다\n"</span></span><span>);
}

</span><span><span class="hljs-comment">// 2. 명령 출력을 읽습니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"명령 출력은 다음과 같습니다:\n"</span></span><span>;
</span><span><span class="hljs-keyword">while</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">feof</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>)) {
    </span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$line</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$line</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// 3. 사용 pclose 프로세스를 닫고 반환 값을 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$return_value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">pclose</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n프로세스 리턴 값:<span class="hljs-subst">$return_value</span></span></span><span>\n";

<span class="hljs-comment">/*
분석:
1. popen() 지정된 명령을 실행하기 위해 하위 프로세스가 시작됩니다.,파일 핸들을 반환합니다。
2. 통과하다 fgets() 또는 fread() 아동 프로세스의 출력은 한 줄씩 읽을 수 있습니다.。
3. 독서가 끝난 후,必须사용 pclose() 손잡이를 닫으십시오,동시에 명령의 종료 상태를 얻으십시오.。
4. 'r' 모드는 읽기 출력을 의미합니다,'w' 모드는 프로세스에 데이터를 입력한다는 것을 의미합니다。
이 조합은 실시간 명령 출력이 필요한 시나리오에 매우 적합합니다.。
*/</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>