dinamik başlıkları yazma

2 Cevap php

Ben daha sonra aramak için dosya yazmak gerekir bir php dinamik olarak oluşturulan görüntü var. Benim sorunum ben dahil uygun erme başlıkları var bu görüntü ihtiyaç vardır. Orada bu büyük bir sayısı ve onların başlıkları, ayrı ayrı dosya-dosya verme değişir. Htaccess denetimleri bir seçenek değil.

I can write expiration headers if I'm outputting the image directly to the browser with this: header("Content-Type: image/jpeg"); header('Expires: "' . gmdate("D, d M Y H:i:s", $expirationDate) . '"'); imagepng($image, NULL);

Or I can write the image to a file to be used later with this: imagepng($image, $filepath)

Ama benim yaşam için bu ikisini birleştirmek ve son başlıklarını dahil ederken bir dosyaya görüntü yazmak için nasıl anlamaya olamaz. Nasıl bir sona başlığı ile bir imaj dosyası yazma hakkında gitmek istiyorsunuz?

2 Cevap

Ben de senin gibi en iyi bahis dosya sunucusuna düşünmek gibi bir şey:

header("Content-Type: image/jpeg"); 
header('Expires: "' . gmdate("D, d M Y H:i:s",
  $expirationDate) . '"'); 
imagepng($image, NULL);

Tabii statik bir dosyayı hizmet php kullanarak konum, ancak sona başlık tekrar isteklerini sınırlamak için gidiyor.

Update: $image ilk istek oluşturmak ve görüntüyü kaydedin, sonra çıktısı üzerinde oluşturulan bir dosya olduğu için. Ek istekleri üzerine, sadece çıkış zaten oluşturulan görüntü. Eğer aynı çıktı birden çok kez üreten önlemek için sunucuda önbelleğe çeşit uygulamak gerekir iken Esasen expire başlıkları, tarayıcınızın önbelleğini kontrol edilir.

Yani two different kinds of caching bakıyoruz. İki komut bir kombinasyonu ile, aynı komut bunları yapabilirsiniz - gerçekten istediğiniz ancak.

Eğer apache (o değişir beri, sen yapamazsın demek olan) ile başlık sona bir standart belirledi sürece, ben seçim (yoksa sadece) bu senin iyi olduğuna inanıyorum.

Of course there is the convoluted and complex way:

  • Php komut görüntüleri eksik istekleri göndermek için mod_rewrite kurmak.
  • Görüntü isteğine bazı oturum id append (bu yüzden tarayıcıya benzersiz).
  • Php komut sona başlığını ve görüntü içerik göndermek var.
  • Php komut oturumu belirli görüntü adının gerçek statik bir görüntü bağlantı var.

Ya da böyle bir şey. Ben sadece php kullanarak hepsini kadar hizmet ediyorum.

Update, ya da mod_asis kullanmak VolkerK's great answer.

Eğer gerçekten could kullanmak sunucuda başlıkları ve dosyaları içeriği hem de saklamak istiyorsanız mod_asis:

In the server configuration file, associate files with the send-as-is handler e.g.
AddHandler send-as-is asis
The contents of any file with a .asis extension will then be sent by Apache to the client with almost no changes. In particular, HTTP headers are derived from the file itself according to mod_cgi rules, so an asis file must include valid headers, and may also use the CGI Status: header to determine the HTTP response code.

Sizin php komut dosyası daha sonra apache web sunucusu tarafından send-as-is olarak işlenir dosyaları başlıklarını ve içeriğini hem de yazardı.