tdc são paulo 2016 - become a jedi with php streams
TRANSCRIPT
A stream is a body of water[1] with a current,
confined within a bed and stream banks. Depending on its location or certain characteristics, a stream may be referred to as a branch, brook, beck, burn, creek, crick, gill (occasionally ghyll), kill, lick, mill race, rill, river, syke, bayou, rivulet, streamage, wash, run, or runnel.
https://en.wikipedia.org/wiki/Stream
fopen
fpassthru
fputcsv
fputs
fread
fscanf
fseek
fstat
ftell
ftruncate
fwrite
file_ exists
file_ get_ contents
file_ put_ contents
file
fileatime
filectime
filegroup
fileinode
filemtime
fileowner
fileperms
$contexto = stream_context_create([
'http' => [
'method' => 'POST'
'header' => 'Content-Type:
application/x-www-form-urlencoded',
'content' => 'livro=php'
]
]);
$fp = fopen(
'ftp://usuario:senha' .
'@meu_servidor.com' .
'/home/matheusmarabesi/index.php',
'r'
);
$diretorio = new \RecursiveDirectoryIterator('/var/www');
$iterator = new \RecursiveIteratorIterator($diretorio);
$arquivos = new \RegexIterator(
$iterator, '/^.+\.php/', \RecursiveRegexIterator::GET_MATCH
);
foreach ($diretorio as $arquivos) {
print $arquivos->getFilename();
}
$diretorio = new
\RecursiveDirectoryIterator(
'glob://var/www/*.php'
);
foreach ($diretorio as $arquivos) {
print $arquivos->getFilename();
}
streamWrapper {
public resource $context ;
__construct ( void )
__destruct ( void )
public bool dir_closedir ( void )
public bool dir_opendir ( string $path , int $options )
public string dir_readdir ( void )
public bool dir_rewinddir ( void )
public bool mkdir ( string $path , int $mode , int $options )
public bool rename ( string $path_from , string $path_to )
public bool rmdir ( string $path , int $options )
public resource stream_cast ( int $cast_as )
public void stream_close ( void )
public bool stream_eof ( void )
public bool stream_flush ( void )
public bool stream_lock ( int $operation )
public bool stream_metadata ( string $path , int $option , mixed $value )
public bool stream_open ( string $path , string $mode , int $options , string &$opened_path
)
public string stream_read ( int $count )
public bool stream_seek ( int $offset , int $whence = SEEK_SET )
public bool stream_set_option ( int $option , int $arg1 , int $arg2 )
public array stream_stat ( void )
THERE IS MORE
class Mandinga {
private $arquivo;
public function stream_open($arquivo, $modo)
{
if (!file_exists($arquivo)) {
throw new \Exception(
'O arquivo informado não existe'
);
$this->arquivo = fopen($arquivo, $modo);
return true;
}
}
public function stream_read($bytes)
{
return fread($this->file,
$bytes);
}
public function stream_eof()
{
return feof($this->file);
}