2012-12-18 12 views
5

Il mio sito è progettato per essere un sito di immagini divertenti, quando l'utente preme il pulsante casuale un codice PHP sulla stessa pagina genera una nuova immagine casuale, questo è come dovrebbe funzionare. Devo comunque premere il pulsante F5 per ottenere una nuova immagine.Stringa URL PHP per evitare la memorizzazione nella cache del browser

Stavo leggendo su un'altra domanda che le persone usano una data di acquisizione e ottengono una stringa di interrogazione temporale generata alla fine del collegamento per evitare il caching del browser, tuttavia non riesco a capirlo per la vita di me.

Io non sono molto bravo con php quindi per favore parla come se conoscessi solo la struttura di base della pagina web. Grazie!

+1

è meglio per impostare le intestazioni, che l'uso quel 'trucco' –

risposta

4

Quello che stai descrivendo è chiamato un interruttore di cache ed è solitamente una stringa casuale o un timestamp aggiunto all'URL. Quando si fa riferimento l'immagine, anteporre così:

echo get_random_image_url() . '?' . time(); 

questo si tradurrà in un URL simile a questo:

http://your.server.com/random.jpg?1355862360

Nota: get_random_image_url è solo un esempio, ma io sono sicuro di aver capito l'idea

Questa discussione può interessare: How to force a web browser NOT to cache images.

+0

in realtà fa riferimento a un file php che estrae un'immagine divertente casuale dal mio hosting. Mi dispiace, sto bene con CSS e HTML ma ho appena iniziato a imparare qualche mese fa. Qualsiasi altro aiuto sarebbe molto apprezzato. –

0

È molto facile da risolvere: per esempio, controlla i seguenti due collegamenti:

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg?randomValue

Entrambi i due collegamenti sarà aperta la stessa immagine.

Questa è la soluzione! È necessario aggiungere alla fine del file di immagine citarne valore casuale:

image.png?<?php echo someRandom();?> 

Questa comunità o Google un modo per scrivere una funzione che gemnerates valori casuali.

Inoltre v'è soluzione con , suupose il seguente

<img id="funny" src="scripts/php_rand_image.php" /> 
<a href="javascript:changeImage('funny')">Get another image</a> 
<script> 
function changeImage(ob){ 
image = document.getElementById(ob) 
d = new Date(); 
image.src = image.src+'?'+d.getTime(); 
} 
</script> 
+0

ho tentato di rispondere perché sembrava essere il più semplice, grazie, ma quando lo metto alla fine dell'URL, es: "" nel file index.php la pagina non viene più visualizzata. Qualche feedback? –

+0

Devi notare che: someRandom() è una funzione personalizzata che devi scrivere. Il someRandom() dovrebbe essere suffisso all'URL dell'immagine. D'altra parte, consiglio di utilizzare la soluzione dipendente da Javascript. – SaidbakR

0

Penso che utilizzando le intestazioni è meglio che il trucco url

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?> 

http://php.net/manual/en/function.header.php

+0

Grande e posso posizionarlo ovunque nella struttura della pagina web? ex. testa corpo –

Problemi correlati