Studyon Minte9.com
ZCE 5.3




Streams



file_get_contents() - get the entire contents of the webpage as if it is a local file

<?php $contents = file_get_contents('http://studyon.minte9.com'); echo $contents;
  Stream context - allows you to add extra parameters to be used with streams
<?php $postVars = array( 'comment' => 'Test by stream', 'page_id' => '328', 'page_type' => '1', ); //echo file_get_contents("http://studyon.minte9.com/login"); die; $wrapperOptions = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($postVars, '', '&'), 'timeout' => 5, ) ); $streamContext = stream_context_create($wrapperOptions); echo file_get_contents("http://www.fanlafel.ro/comment/frontend/add-comment", 0, $streamContext); // Insert comment
  You can create socket servers and clients using the stream functions.
<?php // -- server.php $socket = stream_socket_server("tcp://0.0.0.0:1037"); while ($conn = stream_socket_accept($socket)){ fwrite($conn, "Hello World"); fclose($conn); } fclose($socket);
 
<?php // -- client.php $socket = stream_socket_client("tcp://0.0.0.0:1037"); if ($socket) { while(!feof($socket)) { echo fread($socket, 100); } fclose($socket); }
 
Finally, we can run our server just like any other PHP script: $ php ./server.php And our client: $ php ./client.php Hello World
You can add a filter to the beginning and end to a stream.
<?php -- server.php $socket = stream_socket_server("tcp://0.0.0.0:1037"); while ($conn = stream_socket_accept($socket)){ // add filters stream_filter_append($conn, 'string.toupper'); stream_filter_append($conn, 'zlib.deflate'); fwrite($conn, "Hello World"); fclose($conn); } fclose($socket);
 
<?php -- client.php $socket = stream_socket_client("tcp://0.0.0.0:1037"); // add filter stream_filter_append($socket, 'zlib.inflate'); if ($socket) { while(!feof($socket)) { echo fread($socket, 100); } fclose($socket); }
  * Reference * stream_wrapper_register() User designed wrappers can be registered via stream_wrapper_register() * stream_filter_register() A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Custom filters can be defined in a PHP script using stream_filter_register() * stream_context_create() A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() * stream_socket_client() Open Internet or Unix domain socket connection * stream_socket_server() Create an Internet or Unix domain server socket * stream_context_set_params() Set parameters for a stream/wrapper/context * Transporters * Internet Domain tcp (Transmission Control Protocol) udp (User Datagram Protocol) ssl (Secure Socket Layer) tls (Transport Layer Security) * Unix Domain unix (Unix Protocol) udg (Unix User Datagram Protocol) * Stream STDIO (for local operations) stream (for remote operations) * Network functions * fsockopen() Open Internet or Unix domain socket connection. Use the fsockopen function to open a socket connection for communicating with a server whose protocol is not supported by PHP <?php fsockopen("www.example.com", 80, $errno, $errstr, 30); * socket_set_timeout() Set timeout period on a stream (alias of the stream_set_timeout) <?php stream_set_timeout($fp, 2); * getservbyname() Get port number associated with an Internet service and protocol -- int getservbyname ( string $service , string $protocol ) * ip2long() Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address
<?php $ip = gethostbyname('www.example.com'); $long = ip2long($ip); if ($long == -1 || $long === FALSE) { echo 'Invalid IP, please try again'; } else { echo $ip; // 192.0.34.166 echo $long; // -1073732954 }