|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-05-07 07:34 UTC] stephen at national-net dot com
Ok, this is a pretty intersting one, and I'm not even sure if it's a bug or just a memory limit thing. I am using a php wrapper for content files (.jpg|.gif|.asf|.mov|.ram), as you can guess, the movie files can be pretty large, upwards of 10MB, all getting read into memory, then spit back out. Couple that with a site that gets 10K+ visits a day and the server is on its knees with a load average of about 10 (when it gets to 25/30 things start swapping and it will dies not long after that.)
here's the code used to wrap the content:
<?php
$mime_type = strtolower(strrchr($f,'.'));
$mime_type_array = array(
'.asf' => 'application/vnd.ms-asf',
'.jpg' => 'image/jpeg',
'.gif' => 'image/gif'
);
if(!in_array($mime_type,array_keys($mime_type_array)))
{
header("Location: /error.php");
}
$offset = 86400 * 3;
header("Expires: ".gmdate("D, d M Y H:i:s \G\M\T", time() + $offset));
header("Cache-Control: max-age=".$offset.", must-revalidate");
header("Last-modified : ".gmdate("D, d M Y H:i:s \G\M\T", filemtime("/web/sites/contentsite/".$f)));
header("Content-type: ".$mime_type_array[$mime_type]);
header("Content-length: ".filesize("/web/sites/contentsite/".$f));
@readfile("/web/sites/contentsite/".$f);
?>
so, I would pass an image or movie to the content file with a url like so:
http://contentsite.com/content.php?f=movies/bigmovie.asf
This is really just a heads up at this point, I know it will take you guys a little while to sort through this one, I'm not even sure it's a bug considering readfile is SUPPOSED to read a file into memory and spit it back out. I dunno, for now I'm going to do some .htaccess tricks where I force php to parse .htaccess files. If anyone has come across this or has any insight on wrapping content in php files, please email me at stephen@national-net.com
Thanks!
Stephen VanDyke
PS - aside from that, great language, I love PHP :)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 16:00:01 2025 UTC |
You are kidding right? Nice way to take down a server. load average: 66.52, 33.25, 15.76 $fp = fopen("/web/sites/contentsite/".$f); while(!feof($fp)) { echo fgets($fd, 4096); } fclose($fp);