假设我让用户输入图片的网址。
在URL验证等之后我想获取图像并将其存储在PHP变量中。不是图像路径,而是实际图像本身。
我在其他字符串之间添加了这个图像保持变量,所以在回显图像之前我无法更改use header()
。是否可以使用<img>
HTML标记?我真的不想将图像复制到我自己的服务器上......
我如何:
我在上面说过,我将这个图像放在另一个变量中,例如:
$str = "blah blah" . $var_holding_img . "more text";
是否可以在上面的字符串中插入将被图像替换的内容?可以稍后解析变量$str
,用图像替换像“abg30j-as”这样的随机文本......
答案 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)
编辑:显然你可以直接将图像保存到变量中,但我不建议你这样做。
答案 3 :(得分:-2)
不,那是不可能的。如果你想提供服务,它必须存在于服务器上。