프로그래밍, 특히 시스템과 상호 작용하는 PHP 프로젝트에서 경로가 실행 파일을 가리키는 지 여부를 확인해야합니다. PHP는 IS_Executable 및 GetEnV 기능의 조합이 환경 변수에서 지정된 경로의 실행 가능성을 쉽게 확인할 수있는이 작업을 수행하는 데 도움이되는 일부 내장 기능을 제공합니다.
환경 변수는 운영 체제에서 일반적으로 시스템 경로 (예 : $ 경로 )를 포함하여 구성 정보를 저장하는 데 사용되며, 이는 실행 파일을 찾는 데 사용할 수있는 디렉토리를 결정합니다. 경로가 실행 파일을 가리키는 지 여부를 확인하려면 getEnV 함수를 사용하여 환경 변수에서 정보를 얻은 다음 IS_Executable 함수를 통해 파일의 실행 가능성을 판단 할 수 있습니다.
getEnv 함수는 환경 변수의 값을 얻고 지정된 환경 변수의 값을 반환하는 데 사용됩니다. 환경 변수가 존재하고 유효한 경우 getEnv는 환경 변수의 값을 반환합니다. 그렇지 않으면 False가 반환됩니다.
<span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">'PATH'</span></span><span>); </span><span><span class="hljs-comment">// 얻다 PATH 환경 변수의 가치</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$path</span></span><span>;
</span></span>
IS_Executable 함수는 주어진 경로가있는 파일이 실행 가능한지 여부를 감지하는 데 사용됩니다. 이 함수는 경로에 의해 가리키는 파일이 실행 가능한 경우 부울 값 을 반환합니다. 그렇지 않으면 false .
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/usr/bin/php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$file</span></span></span><span> 실행 파일입니다。";
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$file</span></span></span><span> 不실행 파일입니다。";
}
</span></span>
환경 변수 (예 : $ Path )의 특정 경로가 실행 파일을 가리키는 지 여부를 확인 해야하는 경우 GetEnv를 통해 $ 경로 로 경로를 가져올 수 있으며 IS_Executable을 사용하여 각 경로가 실행 파일을 가리키는 지 여부를 결정할 수 있습니다.
다음은 $ 경로 에서 지정된 경로의 실행 가능성을 확인하기 위해이 두 기능을 사용하는 방법을 보여주는 간단한 예입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 얻다 PATH 환경 변수</span></span><span>
</span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">'PATH'</span></span><span>);
</span><span><span class="hljs-comment">// 할 것이다 PATH 경로 분리기에 의해 어레이로 분할됩니다</span></span><span>
</span><span><span class="hljs-variable">$paths</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(PATH_SEPARATOR, </span><span><span class="hljs-variable">$path</span></span><span>);
</span><span><span class="hljs-comment">// 명령을 확인하고 싶다고 가정 해 봅시다(좋다 php)실행 가능성</span></span><span>
</span><span><span class="hljs-variable">$command</span></span><span> = </span><span><span class="hljs-string">'php'</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$paths</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$dir</span></span><span>) {
</span><span><span class="hljs-comment">// 완전한 명령 경로를 생성하십시오</span></span><span>
</span><span><span class="hljs-variable">$fullPath</span></span><span> = </span><span><span class="hljs-variable">$dir</span></span><span> . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$command</span></span><span>;
</span><span><span class="hljs-comment">// 경로가 실행 가능한지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$fullPath</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"주문하다 <span class="hljs-subst">$command</span></span></span><span> 실행 가능한 경로: </span><span><span class="hljs-subst">$fullPath</span></span><span>";
</span><span><span class="hljs-keyword">break</span></span><span>; </span><span><span class="hljs-comment">// 루프를 찾은 후 루프를 중지 할 수 있습니다</span></span><span>
}
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
위의 예에서 getEnv ( 'Path')는 환경 변수 $ 경로 의 값을 가져온 다음 운영 체제의 경로 분리기에 의해 배열로 나눕니다. 다음으로, 프로그램은 각 경로를 $ 경로 로 확인하고이를 완전한 명령 경로로 결합하고 IS_Executable 함수를 통해 경로가 실행 가능한지 여부를 결정합니다. 실행 가능한 경로가 발견되면 결과가 출력되고 루프가 중지됩니다.
코드의 견고성을 향상시키기 위해 환경 변수가 비어 있는지 확인하거나 경로가 유효한 디렉토리인지 확인하는 등 몇 가지 추가 오류 처리를 추가 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">'PATH'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$path</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">'无法얻다 PATH 환경 변수'</span></span><span>);
}
</span><span><span class="hljs-variable">$paths</span></span><span> = </span><span><span class="hljs-title function_ invoke__">explode</span></span><span>(PATH_SEPARATOR, </span><span><span class="hljs-variable">$path</span></span><span>);
</span><span><span class="hljs-variable">$command</span></span><span> = </span><span><span class="hljs-string">'php'</span></span><span>;
</span><span><span class="hljs-variable">$found</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$paths</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$dir</span></span><span>) {
</span><span><span class="hljs-variable">$fullPath</span></span><span> = </span><span><span class="hljs-variable">$dir</span></span><span> . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$command</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$fullPath</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"주문하다 <span class="hljs-subst">$command</span></span></span><span> 실행 가능한 경로: </span><span><span class="hljs-subst">$fullPath</span></span><span>";
</span><span><span class="hljs-variable">$found</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
</span><span><span class="hljs-keyword">break</span></span><span>;
}
}
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$found</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"未找到可执行的주문하다 <span class="hljs-subst">$command</span></span></span><span>";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
이 버전의 코드는 환경 변수를 검색 할 수 없을 때 실행을 종료하고 실행 파일을 찾을 수없는 경우 프롬프트 메시지를 제공합니다.
GetEnv 및 is_executable 함수를 사용하면 개발자는 환경 변수의 지정된 경로가 실행 파일을 가리킬 수 있는지 쉽게 확인할 수 있습니다. 이 방법은 시스템의 특정 명령을 사용할 수 있는지 확인하는 데 도움이 될뿐만 아니라 환경 변수의 효과적으로 구문 분석 및 경로 검증, 시스템 프로그램의 견고성 및 신뢰성을 향상시킵니다.
관련 태그:
is_executable