21.18 An viele Datei-Handles gleichzeitig schreiben

Problem

Sie wollen eine Ausgabe an mehr als ein Datei-Handle schreiben; zum Beispiel wollen Sie Meldungen auf den Bildschirm und an eine Datei ausgeben.

Lösung

Packen Sie Ihre Ausgabe in eine Schleife, die Ihre Datei-Handles durchläuft, wie in Beispiel 21-4 gezeigt.

Beispiel 21-4. pc_multi_fwrite( )

function pc_multi_fwrite($fhs,$s,$length=NULL) {
  if (is_array($fhs)) {
    if (is_null($length)) {
      foreach($fhs as $fh) {
        fwrite($fh,$s);
      }
    } else {
      foreach($fhs as $fh) {
        fwrite($fh,$s,$length);
      }
    }
  }
}

Hier kommt ein Beispiel:

$fhs['file'] = fopen('log.txt','w') or die($php_errormsg);
$fhs['screen'] = fopen('php://stdout','w') or die($php_errormsg);

pc_multi_fwrite($fhs,'Der Spaceshuttle ist gelandet.');

Get PHP 5 Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.