You can read the file with fread(), and set a very low number as byte length argument, or you could even use sleep() after reading a certain amout of bytes and then continue. http://us2.php.net/fread http://us2.php.net/sleep
I worked on a very high traffic site and the whole thing was running slowly since there was a massive mod database eating up all the bandwidth. It was running on IIS and we setup files.domain.com with a bandwidth cap and moved all the images and files onto it. Pages loaded quickly while download speed on files were limited. As Cody said, that's something you want your server to handle. I wouldn't attempt it with PHP unless you really have no choice.
$speed = 20; //in KB $file = fopen($file_location,'r'); while($temp = fread($file,round($speed*1024))){ echo $temp; flush(); sleep(1); } fclose($file); PHP: Peace,