Web sayfasında görüntülerken sadece süre php Geçici mağaza görüntü

3 Cevap php

Ben başka bir siteden resim alıp sitemde göstermek istiyorum. Ben kullanıcı düşünce görüntülerin benim geliyor, böylece sadece sayfada gösterme sırasında geçici yanımda görüntüleri, olası bunu site.is olduğunu saklamak ister? Nasıl? Şimdiden teşekkürler.

ex:- imagine there are some graphs generated in a server (some network monitoring graphs like smokeping )and those graphs are stored in a folder as .png format.

ex: - imagine_this_url_has_a_graph (ama bu sadece bir sayfası)

böylece kullanıcı, başka bir web sitesinde bu grafikleri göstermek istiyorum.

3 Cevap

Basit bir önbellek sistemi bu yapardı. Gibi bir HTML dosyası Verilen:

<body>
 <img src="imagesource.php?file=1" />
</body>

Sen gibi görüntü veri kaynağını (imagesource.php) oluşturabilirsiniz:

<?php
$files = array(
   'http://somesite.com/image_to_cache.gif',
   'http://somesite.com/image_to_cache2.gif'
);

if(!isset($_REQUEST['file']) || !isset($files[$_REQUEST['file']])) {
   header('HTTP/1.0 404 Not Found');
   exit;
}

// do we already have the cached file?
$requested_file = $files[$_REQUEST['file']];
$cache_dir = '/tmp/cached_images';
$cache_file = md5($requested_file);
$cache_path = $cache_dir . '/' . $cache_file;

header('Content-Type: image/gif');

if(file_exists($cache_path)) {
   readfile($cache_path);
   exit;
}

//need to create the cache.
$data = file_get_contents($requested_file);
file_put_contents($cache_path, $data);

echo $data;

Istendiğinde onlar zaten tarayıcı bunları indirmiş, ve çıkış olmamıştır eğer bu yerel uzaktaki görüntüleri önbelleğe olacaktır.

Bir görüntü için istek sizin sunucuya karşı yapıldığında, sadece fopen() uzak görüntüyü açmak için kullanmak, ve fpassthru() onu geçmek.

Eğer çıktı sizinki gibi resim istiyorsanız fileread() yerine fopen() kullanımı, aksi takdirde, bir hata alırsınız.