Para responder a su pregunta general, sí puede tratar una variable como una secuencia de archivos.
http://www.php.net/manual/en/function.stream-context-create.php
La siguiente es una copia y pegar de algunos comentarios diferentes en el manual de PHP (por lo que no puedo responder por la forma en la producción de preparados es):
<?php
class VariableStream {
private $position;
private $varname;
public function stream_open($path, $mode, $options, &$opened_path) {
$url = parse_url($path);
$this->varname = $url["host"];
$this->position = 0;
return true;
}
public function stream_read($count) {
$p=&$this->position;
$ret = substr($GLOBALS[$this->varname], $p, $count);
$p += strlen($ret);
return $ret;
}
public function stream_write($data){
$v=&$GLOBALS[$this->varname];
$l=strlen($data);
$p=&$this->position;
$v = substr($v, 0, $p) . $data . substr($v, $p += $l);
return $l;
}
public function stream_tell() {
return $this->position;
}
public function stream_eof() {
return $this->position >= strlen($GLOBALS[$this->varname]);
}
public function stream_seek($offset, $whence) {
$l=strlen(&$GLOBALS[$this->varname]);
$p=&$this->position;
switch ($whence) {
case SEEK_SET: $newPos = $offset; break;
case SEEK_CUR: $newPos = $p + $offset; break;
case SEEK_END: $newPos = $l + $offset; break;
default: return false;
}
$ret = ($newPos >=0 && $newPos <=$l);
if ($ret) $p=$newPos;
return $ret;
}
}
stream_wrapper_register("var", "VariableStream");
$csv = "foo,bar\ntest,1,2,3\n";
$row = 1;
if (($handle = fopen("var://csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
Por supuesto, para su ejemplo particular, hay métodos de transmisión más simples que se pueden usar.
Ya lo hubiera votado dos veces si pudiera, siempre parece tener un lugar en las respuestas. Necesito leer las notas del usuario con más frecuencia. – Erik
Gracias :-) ;;; Las notas de los usuarios muy a menudo traen alguna información interesante :-) * (Bueno, si uno de los usuarios tiene un problema, es probable que otra persona ya haya tenido el mismo problema antes ^^) * –
Es interesante observar, después de leer un poco , puede usar 'php: // memory' - la única ventaja de' php: // temp' es que el archivo exceda el tamaño designado, se escribirá en el disco; si estás por debajo de ese tamaño de archivo, permanece completamente en la memoria. – Erik