php控制文件下载速度的方法

yipeiwu_com6年前PHP代码库

本文实例讲述了php控制文件下载速度的方法。分享给大家供大家参考。具体实现方法如下:

<?php
 /*
 * set here a limit of downloading rate (e.g. 10.20 Kb/s)
 */
 $download_rate = 10.20;
 $download_file = 'download-file.zip'; 
 $target_file = 'target-file.zip';
 if(file_exists($download_file)){
  /* headers */
  header('Last-Modified:'.gmdate('D, d M Y H:i:s').'GMT');
  header('Cache-control: private');
  header('Content-Type: application/octet-stream');
  header('Content-Length: '.filesize($download_file));
  header('Content-Disposition: filename='.$target_file);
  /* flush content */
  flush();
  /* open file */
  $fh = @fopen($download_file, 'r');
  while(!feof($fh)){
   /* send only current part of the file to browser */
   print fread($fh, round($download_rate * 1024));
   /* flush the content to the browser */
   flush();
   /* sleep for 1 sec */
   sleep(1);
  }
  /* close file */
  @fclose($fh);
 }else{
  die('Fatal error: the '.$download_file.' file does not exist!');
 }
?>

希望本文所述对大家的php程序设计有所帮助。

相关文章

php网页后退不再出现过期

<?php  ob_start();  if(function_exists(session_cache_limiter)) { sessi...

PHP+Ajax实现的检测用户名功能简单示例

PHP+Ajax实现的检测用户名功能简单示例

本文实例讲述了PHP+Ajax实现的检测用户名功能。分享给大家供大家参考,具体如下: 一 代码 fun.js: function chkUsername(username){...

PHP邮件发送类PHPMailer用法实例详解

本文实例讲述了PHP邮件发送类PHPMailer用法,并详细讲述了其具体的操作步骤。分享给大家供大家参考。具体步骤如下: 1.在服务器安装 sendmail sudo apt-get...

教你在header中隐藏php的版本信息

前言 在php渲染的网页header信息中,会包含php的版本号信息,比如: X-Powered-by: php/5.3.3,这有些不安全,有些黑客可能采用扫描的方式,批量寻找低版本的p...

PHP实现数组递归转义的方法

本文以实例形式讲述了PHP实现数组递归转义的方法,分享给大家供大家参考之用。具体方法如下: 主要功能代码如下: $arr = array('a"aa',array("c'd",arr...