PHP :: イディオム / プロトコル/ラッパー

以下は、file_get_contents や file_put_contents の引数として利用できます。

HTTP と HTTPS

http://jp.php.net/manual/ja/wrappers.http.php

http://example.com
http://example.com/file.php?var1=val1&var2=val2
http://user:password@example.com
https://example.com
https://example.com/file.php?var1=val1&var2=val2
https://user:password@example.com


FTP と FTPS

http://jp.php.net/manual/ja/wrappers.ftp.php

ftp://example.com/pub/file.txt
ftp://user:password@example.com/pub/file.txt
ftps://example.com/pub/file.txt
ftps://user:password@example.com/pub/file.txt


入出力ストリーム

http://jp.php.net/manual/ja/wrappers.php.php

php://stdin
php://stdout
php://stderr
php://output
php://input
php://filter (PHP 5.0.0 以降で使用可能)
php://memory (PHP 5.1.0 以降で使用可能)
php://temp (PHP 5.1.0 以降で使用可能)


圧縮ストリーム

http://jp.php.net/manual/ja/wrappers.compression.php

zlib:
compress.zlib://
compress.bzip2://

基本的な使用法

<?php
$file = 'compress.zlib:///path/to/test.zip';
file_put_contents($file, 'hoge-fuga');
echo file_get_contents($file);
?>


SSH2

http://jp.php.net/manual/ja/wrappers.ssh2.php

ssh2.shell://user:pass@example.com:22/xterm
ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd
ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14
ssh2.sftp://user:pass@example.com:22/path/to/filename
ssh2.scp:// 


対話的プロセスストリーム

http://jp.php.net/manual/ja/wrappers.expect.php

expect://command


Glob

http://jp.php.net/manual/ja/wrappers.glob.php

glob: ストリームラッパーは PHP 5.3.0 以降で使用可能です。

基本的な使用法

<?php
// ext/spl/examples/ ディレクトリのすべての *.php ファイルについて、
// そのファイル名とサイズを表示します
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach($it as $f) {
    printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
}
?>

結果

tree.php: 1.0K
findregex.php: 0.6K
findfile.php: 0.7K
dba_dump.php: 0.9K
nocvsdir.php: 1.1K
phar_from_dir.php: 1.0K
ini_groups.php: 0.9K
directorytree.php: 0.9K
dba_array.php: 1.1K
class_tree.php: 1.8K