Ben bir URL almak ve URL önbelleğe alınmış bir sürümü için bir veritabanı arama gerekiyordu bir PHP komut dosyası var. Onu bulursa, bu, kullanıcıya önbelleğe alınmış sürümünü yazdırır aksi cURL kullanarak indirir ve kullanıcıya echos. Şu anda, indirme komut şöyle:
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
// grab URL and pass it to the browser
$data = curl_exec($ch);
$mimetype = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
// close cURL resource, and free up system resources
curl_close($ch);
mysql_query("INSERT INTO `cache_files` (`key`, `original_url`, `file_data`, `mime_type`) VALUES (".
"'" . mysql_real_escape_string($key) . "', " .
"'" . mysql_real_escape_string($url) . "', " .
"'" . mysql_real_escape_string($data) . "', " .
"'" . mysql_real_escape_string($mimetype) . "')"
);
if (isset($_GET["no_output"])) die;
header ("Content-Type: " . $mimetype);
header ('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 157680000), true);
header ('Last-Modified: '.gmdate('D, d M Y H:i:s \G\M\T'), true);
header ('Cache-Control: public; max-age=157680000');
header ('Pragma: ');
print $data;
Bu şu anda gayet iyi çalışıyor onlar% 100 artırımlı render tetiklenir değil neden olan, indirilen kadar, ancak, büyük dosyaları son kullanıcıya göndermek değildir. Ben cURL indirilirken kullanıcıya verileri aktarmak, aynı zamanda komut tüketimi için bir dize veri mevcut olabilir ki bir yolu olup olmadığını bilmek istiyorum.