2 Stimmen

Abrufen eines Dateizeigers aus einem Dateideskriptor

In PHP 5.2.3 wurde "fdopen" zum Lesen/Schreiben eines Dateideskriptors verwendet, der von einer anderen Anwendung geöffnet wurde.

fdopen(<fileDescriptorId>,"rw");  //It worked fine with PHP 5.2.3

Nachdem ich PHP auf 5.3.2 aktualisiert habe, wird ein " undefined reference to 'fdopen' function ".

Bitte schlagen Sie vor, was der Ersatz für diese in PHP 5.3.2 oder eine Umgehung.

3voto

falken Punkte 884

Seit PHP 5.3.6 (und immer noch gültig und funktionierend mit PHP 7.2.1), ist die korrekte Methode für den Zugriff auf einen Dateideskriptor die Verwendung von fopen con php://fd :

$fd = 3;
$pipe = fopen("php://fd/{$fd}", 'w');
fwrite($pipe, 'hello!');

2voto

VolkerK Punkte 93746

Könnte dieses fdopen() von Ihnen von einer benutzerdefinierten php-Erweiterung bereitgestellt worden sein?
Auf einem linux/unix-Server

function fdopen($id, $mode) {
  return fopen("/proc/self/fd/".(int)$id, $mode);
}

könnte Arbeit.

edit: siehe http://linux.die.net/man/5/proc

0voto

Sarfraz Punkte 366217

Le site fdopen ist verwandt mit C-Sprache . Eine solche Funktion gibt es in PHP nicht. Ich glaube, Sie haben sich bei der PHP-Funktion fopen Funktion, richtig?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X