Rechercher une fonction PHP

stream_notification_callback

(PHP 5 >= 5.2.0, PHP 7)

stream_notification_callbackA callback function for the notification context parameter

Beschreibung

stream_notification_callback ( int $notification_code , int $severity , string $message , int $message_code , int $bytes_transferred , int $bytes_max ) : void

A callable function, used by the notification context parameter, called during an event.

Hinweis:

This is not a real function, only a prototype of how the function should be.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Parameter-Liste

notification_code

One of the STREAM_NOTIFY_* notification constants.

severity

One of the STREAM_NOTIFY_SEVERITY_* notification constants.

message

Passed if a descriptive message is available for the event.

message_code

Passed if a descriptive message code is available for the event.

The meaning of this value is dependent on the specific wrapper in use.

bytes_transferred

If applicable, the bytes_transferred will be populated.

bytes_max

If applicable, the bytes_max will be populated.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Rückgabewerte

Es wird kein Wert zurückgegeben.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Beispiele

Beispiel #1 stream_notification_callback() example

<?php
function stream_notification_callback($notification_code$severity$message$message_code$bytes_transferred$bytes_max) {

    switch(
$notification_code) {
        case 
STREAM_NOTIFY_RESOLVE:
        case 
STREAM_NOTIFY_AUTH_REQUIRED:
        case 
STREAM_NOTIFY_COMPLETED:
        case 
STREAM_NOTIFY_FAILURE:
        case 
STREAM_NOTIFY_AUTH_RESULT:
            
var_dump($notification_code$severity$message$message_code$bytes_transferred$bytes_max);
            
/* Ignore */
            
break;

        case 
STREAM_NOTIFY_REDIRECTED:
            echo 
"Being redirected to: "$message;
            break;

        case 
STREAM_NOTIFY_CONNECT:
            echo 
"Connected...";
            break;

        case 
STREAM_NOTIFY_FILE_SIZE_IS:
            echo 
"Got the filesize: "$bytes_max;
            break;

        case 
STREAM_NOTIFY_MIME_TYPE_IS:
            echo 
"Found the mime-type: "$message;
            break;

        case 
STREAM_NOTIFY_PROGRESS:
            echo 
"Made some progress, downloaded "$bytes_transferred" so far";
            break;
    }
    echo 
"\n";
}

$ctx stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact"false$ctx);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Connected...
Found the mime-type: text/html; charset=utf-8
Being redirected to: http://no.php.net/contact
Connected...
Got the filesize: 0
Found the mime-type: text/html; charset=utf-8
Being redirected to: http://no.php.net/contact.php
Connected...
Got the filesize: 4589
Found the mime-type: text/html;charset=utf-8
Made some progress, downloaded 0 so far
Made some progress, downloaded 0 so far
Made some progress, downloaded 0 so far
Made some progress, downloaded 1440 so far
Made some progress, downloaded 2880 so far
Made some progress, downloaded 4320 so far
Made some progress, downloaded 5760 so far
Made some progress, downloaded 6381 so far
Made some progress, downloaded 7002 so far

Beispiel #2 Simple progressbar for commandline download client

<?php
function usage($argv) {
    echo 
"Usage:\n";
    
printf("\tphp %s <http://example.com/file> <localfile>\n"$argv[0]);
    exit(
1);
}

function 
stream_notification_callback($notification_code$severity$message$message_code$bytes_transferred$bytes_max) {
    static 
$filesize null;

    switch(
$notification_code) {
    case 
STREAM_NOTIFY_RESOLVE:
    case 
STREAM_NOTIFY_AUTH_REQUIRED:
    case 
STREAM_NOTIFY_COMPLETED:
    case 
STREAM_NOTIFY_FAILURE:
    case 
STREAM_NOTIFY_AUTH_RESULT:
        
/* Ignore */
        
break;

    case 
STREAM_NOTIFY_REDIRECTED:
        echo 
"Being redirected to: "$message"\n";
        break;

    case 
STREAM_NOTIFY_CONNECT:
        echo 
"Connected...\n";
        break;

    case 
STREAM_NOTIFY_FILE_SIZE_IS:
        
$filesize $bytes_max;
        echo 
"Filesize: "$filesize"\n";
        break;

    case 
STREAM_NOTIFY_MIME_TYPE_IS:
        echo 
"Mime-type: "$message"\n";
        break;

    case 
STREAM_NOTIFY_PROGRESS:
        if (
$bytes_transferred 0) {
            if (!isset(
$filesize)) {
                
printf("\rUnknown filesize.. %2d kb done.."$bytes_transferred/1024);
            } else {
                
$length = (int)(($bytes_transferred/$filesize)*100);
                
printf("\r[%-100s] %d%% (%2d/%2d kb)"str_repeat("="$length). ">"$length, ($bytes_transferred/1024), $filesize/1024);
            }
        }
        break;
    }
}

isset(
$argv[1], $argv[2]) or usage($argv);

$ctx stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

$fp fopen($argv[1], "r"false$ctx);
if (
is_resource($fp) && file_put_contents($argv[2], $fp)) {
    echo 
"\nDone!\n";
    exit(
0);
}

$err error_get_last();
echo 
"\nErrrrrorr..\n"$err["message"], "\n";
exit(
1);
?>

Executing the example above with: php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 will output something similar too:

Connected...
Mime-type: text/html; charset=utf-8
Being redirected to: http://no2.php.net/distributions/php-5.2.5.tar.bz2
Connected...
Filesize: 7773024
Mime-type: application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)

Finde eine PHP-Funktion

Deutsche Übersetzung

Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.

Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.

Vielen Dank im Voraus.

Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-stream-notification-callback.html

Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.

Referenzen

  1. Zeigen Sie - html-Dokument Sprache des Dokuments:fr Manuel PHP : http://php.net

Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.

Inhaltsverzeichnis Haut