Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将图像存储在变量中,稍后回显_Php_Variables_Echo_Store - Fatal编程技术网

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

Php 将图像存储在变量中,稍后回显,php,variables,echo,store,Php,Variables,Echo,Store,假设我让一个用户输入一个图像的URL 在URL验证等之后,我想获取图像并将其存储在PHP变量中。不是图像路径,而是实际图像本身 我正在其他字符串之间添加此图像保持变量,因此在回显图像之前无法更改useheader()。是否可以使用HTML标记?我真的不想把这些图像复制到我自己的服务器上 我如何: 将图像存储在变量中,以便 从变量回显图像,而不更改标题 编辑: 我在上面说过,我将此图像放在另一个变量中,例如: $str = "blah blah" . $var_holding_img . "mor

假设我让一个用户输入一个图像的URL

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

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

我如何:

  • 将图像存储在变量中,以便
  • 从变量回显图像,而不更改标题
  • 编辑: 我在上面说过,我将此图像放在另一个变量中,例如:

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

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

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

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

    我如何:

    将图像存储在变量中,以便, 从变量回显图像,而不更改标题

    你可以用两种方法来做

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

    第二种方法是,如果图像足够小,可以将其编码为BASE64,并将其输出到特制的IMG标记中:


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

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

    首先,我创建了另一个PHP文件,名为
    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);
    ?>
    
    
    
    然后,在原始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变量。

    @AlexLunix同意,我知道使用正确的
    头文件()
    就可以做到这一点。我不能在中间使用这个函数,但是重定向不是“在服务器上”,因此不能通过图像标签来服务。你可以将图像存储在变量中。还有一些方法可以将图像本身输出到html中,但它们不是很好。我在任何地方都没有见过这种方法。你能给我一个描述这种方法的链接吗?谷歌找不到任何东西。基本上,你在图像页面中嵌入了base64字符串,但这很混乱,它不想让你正确地保存它们,并给页面添加了膨胀。希望这将为您指明正确的方向: