Related Links : Search Engine Optimization | | Search Engine Marketing | Online Marketing | Freelance Programmer| SEO Thailand | SEO Expert | SEO services | PHP Programmer Thailand | SEO Tutorial | What is SEO |

  Home Our SEO Services SEO Expert Consultant Php Programmer Scripts| Email : sachin {at} jainsachin {dot} com

PHP | A callback function for the notification context paramater | Manual | Tutorial | Help

SEO Services



Website Programming in PHP / MYSQL



Friends


    A callback function for the notification context paramater

    stream_notification_callback

    (No version information available, might be only in CVS)

    stream_notification_callback — A callback function for the notification context paramater

    Description

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

    A callback function called during an event.

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

    Parameters

    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.

    Return Values

    No value is returned.

    Examples

    Example #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 
    "Conntected...";
                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(null, array("notification" => "stream_notification_callback"));

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

    The above example will output something similar to:

    Conntected...
    Found the mime-type: text/html; charset=utf-8
    Being redirected to: http://no.php.net/contact
    Conntected...
    Got the filesize: 0
    Found the mime-type: text/html; charset=utf-8
    Being redirected to: http://no.php.net/contact.php
    Conntected...
    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
    

    Example #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 
    "Conntected...\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(null, 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:

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


    SEO Tutorial / Articles





    Php / Mysql Tutorial



    Articles



      Portfolio


      SEO by Jainsachin