현재 위치: > 최신 기사 목록> fopen과 협력하는 데 Stream_is_local은 무엇을 사용할 수 있습니까? 로컬 파일을 빠르게 감지하는 방법을 공유하십시오

fopen과 협력하는 데 Stream_is_local은 무엇을 사용할 수 있습니까? 로컬 파일을 빠르게 감지하는 방법을 공유하십시오

gitbox 2025-09-24

1. stream_is_local 이란 무엇입니까?

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 함수를 통해 얻을 수 있음).

2. fopenstream_is_local을 사용하는 방법은 무엇입니까?

Fopen은 PHP에서 파일을 열기 위해 사용되는 기능입니다. 로컬 파일, 원격 파일 (예 : http 또는 ftp protocols) 등을 열 수 있습니다. Stream_is_local 과 결합하면 파일이 로컬 파일 시스템에 저장되어 있는지 여부를 결정할 수 있습니다. 이는 로컬 파일 처리가 필요할 때 특히 유용합니다.

기본 예 : 예 :

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

이 예에서는 파일을 성공적으로 열면 fopen을 통해 example.txt 파일을 열면 stream_is_local을 사용하여 파일이 로컬 파일인지 확인하십시오.

3. Stream_is_local 의 실제 응용 시나리오

실제 개발에서 Stream_is_local은 여러 시나리오에서 적용 할 수 있습니다. 특히 파일 경로가 로컬 경로, URL 또는 기타 프로토콜이 될 수있는 경우 파일에 로컬로 저장되어 있는지 확인해야합니다.

3.1 업로드 된 파일 처리

사용자가 파일을 업로드하면 URL 또는 로컬 파일 경로 인 파일 경로가있을 수 있습니다. 업로드 된 파일이 로컬 파일인지 확인 해야하는 경우 stream_is_local을 사용하여 다음을 결정할 수 있습니다.

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

3.2 원격 파일과 로컬 파일을 구별하십시오

경우에 따라 파일 소스 (로컬 또는 리모컨)를 기반으로 후속 작업을 결정해야 할 수도 있습니다. 예를 들어, 파일을 다운로드 해야하는 경우 로컬 파일의 우선 순위를 정할 수 있습니다. 그렇지 않으면 원격 파일 다운로드가 수행됩니다.

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

4. 주목할만한 것들

  • Stream_is_local 은 스트리밍 자원에만 적합합니다. 유효한 스트림 리소스가 전달되지 않으면 함수가 False를 반환합니다.

  • 이 기능은 파일 스트림이 로컬 파일 시스템에서 나오는 지 여부를 결정하는 데만 사용될 수 있으며 파일의 실제 컨텐츠, 권한 또는 존재를 결정할 수 없습니다.

5. 요약

stream_is_localfopen 의 조합은 파일을 처리 할 때 파일이 로컬 파일 시스템에서 나오는 지 여부를 신속하게 결정하는 데 효과적으로 도움이 될 수 있습니다. 이것은 많은 응용 프로그램 시나리오에서 매우 실용적이며, 특히 로컬 파일과 원격 파일을 구별해야 할 경우에 매우 실용적입니다. 이 두 기능을 통해 우리는 해당 운영 결정을 쉽게 만들고 개발 효율성을 향상시킬 수 있습니다.