Aktueller Standort: Startseite> Neueste Artikel> Was kann Stream_is_Local verwendet werden, um mit Fopen zusammenzuarbeiten? Teilen Sie mit, wie Sie lokale Dateien schnell erkennen können

Was kann Stream_is_Local verwendet werden, um mit Fopen zusammenzuarbeiten? Teilen Sie mit, wie Sie lokale Dateien schnell erkennen können

gitbox 2025-09-24

1. Was ist stream_is_local ?

Stream_is_Local ist eine integrierte Funktion in PHP. Seine Funktion besteht darin, zu überprüfen, ob eine Datei oder ein Stream eine Datei im lokalen Dateisystem ist. Diese Funktion gibt einen booleschen Wert zurück und true , wenn der angegebene Stream eine Datei des lokalen Dateisystems ist, ansonsten false zurückgibt.

 <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>

Parameterbeschreibung:

  • $ stream : Dies ist eine gültige Stream -Ressource (die Stream -Ressource kann über die FOPEN -Funktion erhalten werden).

2. Wie kann man Fopen und Stream_is_Local verwenden?

Fopen ist eine Funktion, die in PHP zum Öffnen von Dateien verwendet wird. Es können lokale Dateien, Remotedateien (z. B. HTTP- oder FTP -Protokolle) usw. geöffnet werden. In Kombination mit Stream_is_Local können wir bestimmen, ob die Datei im lokalen Dateisystem gespeichert ist. Dies ist besonders nützlich, wenn die lokale Dateiverarbeitung erforderlich ist.

Grundlegendes Beispiel:

 <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">// verwenden fopen Öffnen Sie die Datei</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">// Stellen Sie fest, ob die Datei eine lokale Datei ist</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">"Die Datei ist eine lokale Datei。"</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">"Die Datei ist keine lokale Datei。"</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">"无法Öffnen Sie die Datei!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In diesem Beispiel öffnen wir die Datei von Beispiel.txt über FOPEN , wenn die Datei erfolgreich geöffnet wird, und dann verwenden Sie Stream_is_Local, um zu überprüfen, ob es sich bei der Datei um eine lokale Datei handelt.

3.. Praktische Anwendungsszenarien von Stream_is_local

In der tatsächlichen Entwicklung kann Stream_is_Local in mehreren Szenarien angewendet werden, insbesondere wenn der Dateipfad ein lokaler Pfad, eine URL oder ein anderes Protokoll sein kann, müssen wir feststellen, ob die Datei lokal gespeichert ist.

3.1 Hochgeladene Dateien verarbeiten

Wenn ein Benutzer eine Datei hochlädt, gibt es möglicherweise einen Dateipfad, der eine URL oder einen lokalen Dateipfad ist. Wenn Sie bestätigen müssen, ob es sich bei der hochgeladenen Datei um eine lokale Datei handelt, können Sie stream_is_local ermitteln:

 <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">// Überprüfen Sie, ob die hochgeladene Datei eine lokale Datei ist</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">"上传的Die Datei ist eine lokale Datei。"</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">"上传的Die Datei ist keine lokale Datei。"</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">"Uploaded -Dateien können nicht gelesen werden!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

3.2 Unterscheiden Sie zwischen Remote- und lokalen Dateien

In einigen Fällen kann es erforderlich sein, über die nachfolgenden Operationen auf der Grundlage der Quelle der Datei (lokal oder ferngestatt) zu entscheiden. Wenn Sie beispielsweise Dateien herunterladen müssen, können Sie lokale Dateien priorisieren, andernfalls werden Remote -Datei -Downloads durchgeführt.

 <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">// passieren fopen Öffnen Sie die Datei流</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">"Dies ist eine lokale Datei,Führen Sie lokale Dateioperationen aus。"</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">"Dies ist eine Remotedatei,Führen Sie den Betrieb der Remotedatei durch。"</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">"无法Öffnen Sie die Datei!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4.. Dinge zu beachten

  • Stream_is_Local eignet sich nur für Streaming -Ressourcen. Wenn es sich nicht um eine gültige Stream -Ressource handelt, wird die Funktion falsch zurückgegeben.

  • Diese Funktion kann nur verwendet werden, um festzustellen, ob der Dateistrom aus dem lokalen Dateisystem stammt, und kann den tatsächlichen Inhalt, die Berechtigungen oder das Vorhandensein der Datei nicht bestimmen.

5. Zusammenfassung

Die Kombination von Stream_is_Local und FOPEN kann Entwicklern effektiv helfen, schnell zu bestimmen, ob eine Datei beim Verarbeiten von Dateien aus dem lokalen Dateisystem stammt. Dies ist in vielen Anwendungsszenarien sehr praktisch, insbesondere wenn es notwendig ist, zwischen lokalen und entfernten Dateien zu unterscheiden. Durch diese beiden Funktionen können wir leicht entsprechende Betriebsentscheidungen treffen und die Entwicklungseffizienz verbessern.