Salva l'image in variabile, echo più tardi

Diciamo che ho un utente inserire l'URL di un'image.

Dopo la validation dell'URL, ecc. Voglio get l'image e memorizzarla in una variabile PHP. Non il path dell'image, ma l'image stessa.

Sto aggiungendo questa variabile che tiene l'image tra altre stringhe, quindi non posso cambiare l'uso di header() prima di echoare l'image. È ansible utilizzare i tag HTML <img> ? Non voglio davvero copiare le immagini sul mio server …

Come posso:

  1. Memorizza l'image in una variabile tale che,
  2. Fa eco all'image dalla variabile senza modificare le intestazioni.

Modificare:

Ho detto sopra che sto inserendo questa image in un'altra variabile, ad esempio:

 $str = "blah blah" . $var_holding_img . "more text"; 

È ansible inserire qualcosa nella string sopra che verrà sostituita con le immagini? Può analizzare la variabile $str seguito per sostituire un text random come "abg30j-as" con l'image …

Come posso:

Memorizza l'image in una variabile tale che, Echo l'image dalla variabile senza modificare le intestazioni.

Puoi farlo in due modi.

Nel modo uno, serializzate l'image in una string e salvate la string nella session. Che è esattamente la stessa cosa che salvarlo dal lato server , tranne per il fatto che ora il GC della session dovrebbe occuparsi di eliminarlo. Quindi l'IMG SRC che utilizzi reindirizzerà a uno script che prende l'image e la visualizza come image con un tipo MIME appropriato.

Nel secondo modo, se l'image è abbastanza piccola, puoi codificarla come BASE64 e printingrla in un tag IMG appositamente predisposto:

http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html

Questo ti fa risparmiare un po 'di tempo in connessione, anche. Ovviamente l'image deve essere ragionevolmente piccola.

No, non è ansible. Se vuoi servire qualcosa, deve esistere sul server.

  1. Non è ansible salvare l'image reale in una variabile. O si salva l'URL o si copia l'image (cosa ovvio non si vuole) sul proprio server e si salva il path dell'image
  2. Vedi la risposta 1, non puoi echo l'image stessa, collegala solo

Modifica: Ok, ovviamente puoi salvare le immagini direttamente su una variabile, ma non ti consiglio di farlo.

Ho trovato una risposta alla mia domanda:

Per prima cosa, ho creato un altro file PHP, chiamato img.php :

 <?php $url = $_GET['imgurl']; /* Conduct image verification, etc. */ $img_ext = get_ext($url); //Create function "get_ext()" that gets file extension header('Content-type: image/' . $img_ext); echo file_get_contents($url); ?> 

Quindi, nel file PHP originale, ho usato questo codice PHP:

 <?php $var_holding_img = '<img src="img.php?imgurl=http://example.com/image.png"/>'; $string = "This is an image:<br \>" . $var_holding_img . "<br \>displayed dynamically with PHP."; echo $string; ?> 

In questo modo, il file PHP "img.php" può usare le intestazioni appropriate e l'image può essere inserita come HTML in qualsiasi altra variabile PHP.