同时打印图像和字符串

时间:2015-07-25 10:10:54

标签: php image

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

我的代码:

<?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');行。

感谢。

3 个答案:

答案 0 :(得分:1)

您不能多次使用标题(&#39;内容类型&#39;)。如果您的目标是下载带有文本的图像,则搜索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...

或只使用图片网址。  我打电话对不起,如果有任何拼写错误,希望能帮助你。

答案 1 :(得分:1)

理想情况下,您要在此处创建一个带有图像代码的独立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>';
?>

答案 2 :(得分:0)

内容类型只有一个

你可以这样做:

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