echo"Usage:n";printf("tphp %s n",$argv[0]);
exit(1);
}
functionstream_notification_callback($notification_code,$severity,$message,$message_code,$bytes_transferred,$bytes_max) {
static$filesize=null;
switch($notification_code) {
caseSTREAM_NOTIFY_RESOLVE:
caseSTREAM_NOTIFY_AUTH_REQUIRED:
caseSTREAM_NOTIFY_COMPLETED:
caseSTREAM_NOTIFY_FAILURE:
caseSTREAM_NOTIFY_AUTH_RESULT:/* Ignore */break;
caseSTREAM_NOTIFY_REDIRECTED:
echo"Being redirected to: ",$message,"n";
break;
caseSTREAM_NOTIFY_CONNECT:
echo"Connected...n";
break;
caseSTREAM_NOTIFY_FILE_SIZE_IS:$filesize=$bytes_max;
echo"Filesize: ",$filesize,"n";
break;
caseSTREAM_NOTIFY_MIME_TYPE_IS:
echo"Mime-type: ",$message,"n";
break;
caseSTREAM_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]) orusage($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);?>