this is not a bug
mounting a remote filesystem locally "imports" it so it is available to userland programs like a local directory.
(PHP 5 >= 5.2.4, PHP 7, PHP 8)
stream_is_local — Akım, bir yerel akımsa true
döner
akım_veya_url
ile belirtilen URL veya akım bir yerel
akımsa true
döner.
akım
Sınanacak akım özkaynağı veya URL.
Başarı durumunda true
, başarısızlık durumunda false
döner.
Örnek 1 - stream_is_local() örneği
Basit bir kullanım örneği.
<?php
var_dump(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
bool(false) bool(true)
this is not a bug
mounting a remote filesystem locally "imports" it so it is available to userland programs like a local directory.
It appears to return incorrectly for 'file://' wrapper which I would consider to be local.
CODE:
$file1 = '/somefile.jpg';
$file2 = 'file://shouldbelocal.jpg';
$file3 = 'http://someotherfile.jpg';
$local = stream_is_local($file1);
$shouldbelocal = stream_is_local($file2);
$remote = stream_is_local($file3);
var_dump($local, $shouldbelocal, $remote);
RESULT:
bool(true)
bool(false)
bool(false)
<?php
$file1 = '/somefile.jpg';
$file2 = 'file://shouldbelocal.jpg';
$file3 = 'http://someotherfile.jpg';
$file4 = 'file:///indeedlocal.jpg'; // Please note '///' instead of '//'
$local = stream_is_local($file1);
$shouldbelocal = stream_is_local($file2);
$remote = stream_is_local($file3);
$indeedlocal = stream_is_local($file4);
var_dump($local, $shouldbelocal, $remote, $indeedlocal);
The function stream_is_local() does not work with remote mounts points, like sshfs mount points (it will return true as if it was local).