Stream_is_local 은 PHP의 내장 기능입니다. 그 기능은 파일 또는 스트림이 로컬 파일 시스템의 파일인지 확인하는 것입니다. 이 함수는 부울 값을 반환하고 주어진 스트림이 로컬 파일 시스템의 파일 인 경우 true를 반환합니다. 그렇지 않으면 False를 반환합니다.
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">stream_is_local</span></span><span> ( resource </span><span><span class="hljs-variable">$stream</span></span><span> )
</span></span>매개 변수 설명 :
$ stream : 이것은 유효한 스트림 리소스입니다 (스트림 리소스는 Fopen 함수를 통해 얻을 수 있음).
Fopen은 PHP에서 파일을 열기 위해 사용되는 기능입니다. 로컬 파일, 원격 파일 (예 : http 또는 ftp protocols) 등을 열 수 있습니다. Stream_is_local 과 결합하면 파일이 로컬 파일 시스템에 저장되어 있는지 여부를 결정할 수 있습니다. 이는 로컬 파일 처리가 필요할 때 특히 유용합니다.
기본 예 : 예 :
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'example.txt'</span></span><span>;
</span><span><span class="hljs-comment">// 사용 fopen 파일을 엽니 다</span></span><span>
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>, </span><span><span class="hljs-string">'r'</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-comment">// 파일이 로컬 파일인지 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">stream_is_local</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">"파일은 로컬 파일입니다。"</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></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$handle</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></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 예에서는 파일을 성공적으로 열면 fopen을 통해 example.txt 파일을 열면 stream_is_local을 사용하여 파일이 로컬 파일인지 확인하십시오.
실제 개발에서 Stream_is_local은 여러 시나리오에서 적용 할 수 있습니다. 특히 파일 경로가 로컬 경로, URL 또는 기타 프로토콜이 될 수있는 경우 파일에 로컬로 저장되어 있는지 확인해야합니다.
사용자가 파일을 업로드하면 URL 또는 로컬 파일 경로 인 파일 경로가있을 수 있습니다. 업로드 된 파일이 로컬 파일인지 확인 해야하는 경우 stream_is_local을 사용하여 다음을 결정할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-variable">$_FILES</span></span><span>[</span><span><span class="hljs-string">'upload_file'</span></span><span>][</span><span><span class="hljs-string">'tmp_name'</span></span><span>];
</span><span><span class="hljs-comment">// 업로드 된 파일이 로컬 파일인지 확인하십시오</span></span><span>
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>, </span><span><span class="hljs-string">'r'</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">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">stream_is_local</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">"上传的파일은 로컬 파일입니다。"</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></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$handle</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></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>경우에 따라 파일 소스 (로컬 또는 리모컨)를 기반으로 후속 작업을 결정해야 할 수도 있습니다. 예를 들어, 파일을 다운로드 해야하는 경우 로컬 파일의 우선 순위를 정할 수 있습니다. 그렇지 않으면 원격 파일 다운로드가 수행됩니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'https://example.com/file.txt'</span></span><span>;
</span><span><span class="hljs-comment">// 통과하다 fopen 파일을 엽니 다流</span></span><span>
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>, </span><span><span class="hljs-string">'r'</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">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">stream_is_local</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">"이것은 로컬 파일입니다,로컬 파일 작업을 수행하십시오。"</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></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$handle</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></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Stream_is_local 은 스트리밍 자원에만 적합합니다. 유효한 스트림 리소스가 전달되지 않으면 함수가 False를 반환합니다.
이 기능은 파일 스트림이 로컬 파일 시스템에서 나오는 지 여부를 결정하는 데만 사용될 수 있으며 파일의 실제 컨텐츠, 권한 또는 존재를 결정할 수 없습니다.
stream_is_local 과 fopen 의 조합은 파일을 처리 할 때 파일이 로컬 파일 시스템에서 나오는 지 여부를 신속하게 결정하는 데 효과적으로 도움이 될 수 있습니다. 이것은 많은 응용 프로그램 시나리오에서 매우 실용적이며, 특히 로컬 파일과 원격 파일을 구별해야 할 경우에 매우 실용적입니다. 이 두 기능을 통해 우리는 해당 운영 결정을 쉽게 만들고 개발 효율성을 향상시킬 수 있습니다.
관련 태그:
fopen