将图像存储在变量中,稍后回显

时间:2012-09-12 21:56:40

标签: php variables echo store

假设我让用户输入图片的网址。

在URL验证等之后我想获取图像并将其存储在PHP变量中。不是图像路径,而是实际图像本身。

我在其他字符串之间添加了这个图像保持变量,所以在回显图像之前我无法更改use header()。是否可以使用<img> HTML标记?我真的不想将图像复制到我自己的服务器上......

我如何:

  1. 将图像存储在变量中,
  2. 从变量中回收图像而不更改标题。
  3. 编辑:

    我在上面说过,我将这个图像放在另一个变量中,例如:

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

    是否可以在上面的字符串中插入将被图像替换的内容?可以稍后解析变量$str,用图像替换像“abg30j-as”这样的随机文本......

4 个答案:

答案 0 :(得分:4)

我找到了自己问题的答案:

首先,我创建了另一个名为img.php的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);
?>

然后,在原始的PHP文件中,我使用了这个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;
?>

这样,PHP文件“img.php”可以使用正确的标题,图像可以作为HTML插入到任何其他PHP变量中。

答案 1 :(得分:1)

  

我如何:

     

将图像存储在变量中,      在不改变标题的情况下回显变量中的图像。

你可以用两种方式做到这一点。

在第一种方法中,您将字符串序列化,并将字符串保存在会话中。 这与保存服务器端完全相同,除了现在会话GC应该为您清理它。然后,您使用的IMG SRC将重定向到一个脚本,该脚本将获取图像并将其作为具有适当MIME类型的图像输出。

在第二种情况下,如果图像足够小,您可以将其编码为BASE64并将其输出到特制的IMG标签中:

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

这也为您节省了一些时间。当然,图像必须合理小。

答案 2 :(得分:0)

  1. 您无法将实际图像保存在变量中。您可以保存URL或将图像(您显然不需要的内容)复制到服务器并保存图像的路径
  2. 请参阅答案1,您无法回显图像本身,只能链接它
  3. 编辑:显然你可以直接将图像保存到变量中,但我不建议你这样做。

答案 3 :(得分:-2)

不,那是不可能的。如果你想提供服务,它必须存在于服务器上。