&reftitle.examples; Usar <function>file_get_contents</function> para recuperar información desde múltiples fuentes ]]> Hacer una petición POST a un servidor https ]]> Escribir información en un archivo compirmido ]]>
Ejemplo de clase registrada como envoltura de flujo El ejemplo de abajo implementa un gestor de protocolo var:// que permite el acceso a la lectura/escritura de una variable global nominada usando un flujo de sistema de archivos estándar tal como fread. El protocolo var:// implementado abajo, dada la URL "var://foo", leerá/escribirá información hacia/desde $GLOBALS["foo"]. Un Flujo para leer/escribir variables globales nombre = $url["host"]; $this->posición = 0; return true; } function stream_read($cuenta) { $ret = substr($GLOBALS[$this->nombre], $this->posición, $cuenta); $this->posición += strlen($ret); return $ret; } function stream_write($data) { $izquierda = substr($GLOBALS[$this->nombre], 0, $this->posición); $derecha = substr($GLOBALS[$this->nombre], $this->posición + strlen($data)); $GLOBALS[$this->nombre] = $izquierda . $data . $derecha; $this->posición += strlen($data); return strlen($data); } function stream_tell() { return $this->posición; } function stream_eof() { return $this->posición >= strlen($GLOBALS[$this->nombre]); } function stream_seek($índice, $dónde) { switch ($dónde) { case SEEK_SET: if ($índice < strlen($GLOBALS[$this->nombre]) && $índice >= 0) { $this->posición = $índice; return true; } else { return false; } break; case SEEK_CUR: if ($índice >= 0) { $this->posición += $índice; return true; } else { return false; } break; case SEEK_END: if (strlen($GLOBALS[$this->nombre]) + $índice >= 0) { $this->posición = strlen($GLOBALS[$this->nombre]) + $índice; return true; } else { return false; } break; default: return false; } } function stream_metadata($ruta, $opción, $var) { if($opción== STREAM_META_TOUCH) { $url = parse_url($ruta); $varname = $url["host"]; if(!isset($GLOBALS[$varname])) { $GLOBALS[$varname] = ''; } return true; } return false; } } stream_wrapper_register("var", "FlujoVariable") or die("Error al registrar el protocolo"); $mivar = ""; $fp = fopen("var://mivar", "r+"); fwrite($fp, "línea1\n"); fwrite($fp, "línea2\n"); fwrite($fp, "línea3\n"); rewind($fp); while (!feof($fp)) { echo fgets($fp); } fclose($fp); var_dump($mivar); ?> ]]> &example.outputs;