stream_is_local

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

stream_is_localローカルストリームかどうかを調べる

説明

stream_is_local(resource|string $stream): bool

ストリームあるいは URL が、ローカルのものであるかどうかを調べます。

パラメータ

stream

調べたいストリームリソースあるいは URL。

戻り値

成功した場合に true を、失敗した場合に false を返します。

例1 stream_is_local() の例

基本的な使用例です。

<?php
var_dump
(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>

上の例の出力は、 たとえば以下のようになります。

bool(false)
bool(true)

add a note add a note

User Contributed Notes 5 notes

up
1
Anonymous
7 years ago
this is not a bug
mounting a remote filesystem locally "imports" it so it is available to userland programs like a local directory.
up
1
Gemorroj
6 years ago
but hhvm for `file://shouldbelocal.jpg` returns true
https://3v4l.org/ULCni
up
1
php at kalpaitch dot com
7 years ago
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)
up
1
nryabov
3 years ago
<?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);
up
-1
sam at NOSPAM dot bogus dot tld
7 years ago
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).
To Top