同时打印图像和字符串


print both image and string at the same time

这个问题看起来可能很蠢。但是我在网页中打印图像和字符串时遇到了麻烦。

我的代码:

<?php
    $file = 'uploadedimages/' . end(end($collectedResult));
    // $file='demo.gif';
    if(file_exists($file)){
        header('Content-Type:image/jpeg');
        header('Content-Transfer-Encoding: base64');
        //  $data=base64_encode(file_get_contents($file));
        //  echo $data;
        $im = imagecreatefromjpeg($file);
        imagejpeg($im);
        imagedestroy($im);
    }
    else
        echo 'No such file';
    header('Content-Type: text/html; charset=utf-8');
    echo '<br><p>' . json_encode($collectedResult, JSON_UNESCAPED_UNICODE) . '</p>';
?>

使用这些代码图像显示在浏览器中。没关系。但是一些json strings没有显示出来。

我不知道应该把header('Content-Type: text/html; charset=utf-8');和/或header('Content-Type:image/jpeg');行放在哪里

谢谢。

您不能多次使用header('content type')。如果你的目标是下载带有文本的图像,搜索PHP图像框架,如果你只是想使用<img src='<?PHP echo $imageurlordata?>'>打印图像和文本渲染,然后文本,你也可以这样做

$data = base64_encode(file_get_contents($file));
//  echo '<img src="image/base64:'.$data.'">';  // incorrect syntax
echo '<img src="data:image/jpeg;base64,'.$data.'">'; // you can change jpeg as png, gif or smth else...

或者直接使用image url。我正在打电话,如果有错别字,我很抱歉,希望对你有所帮助。

理想情况下,您想要在这里做的是创建一个单独的php文件与图像代码,然后将其包含在html中的标准图像标记中。例如,像这样的内容…(未经测试)

image.php
---------
<?php
    $file = 'uploadedimages/' . end(end($collectedResult));
    if( !file_exists( $file ) ) $file='/path/to/demo.gif';
    if(file_exists($file)){
        header('Content-Type:image/jpeg');
        header('Content-Transfer-Encoding: base64');
        //  $data=base64_encode(file_get_contents($file));
        //  echo $data;
        $im = imagecreatefromjpeg($file);
        imagejpeg($im);
        imagedestroy($im);
    }
?>
then in your html page
----------------------
<img src='image.php' alt='php generated image' />
<?php
    echo '<br><p>' . json_encode($collectedResult, JSON_UNESCAPED_UNICODE) . '</p>';
?>

内容类型

只有一个

你可以这样做:

<?php
echo '<img src="generated-image.php" />';
echo $jsongStr;