调用PHP函数(Calling a PHP function)

2019-10-28 12:15发布

我有以下函数生成并保存基于文本参数的图像。 我怎么能在我的文件中称此? 我试过了

INCLUDE 'outPrice.php'; 

链接到外部PHP以及与此命令调用它,

outPrice($text);

为了这我得到了以下回应。

Warning: Cannot modify header information - headers already sent 

任何帮助,将不胜感激。

function outPrice($textval){
    $textcolor = '666666';


    $font="bgtbt.ttf";
    $size = 20;
    $padding= 1;
    $bgcolor= "ffffff";

    $transparent = 0;
    $antialias = 0;

    $fontfile = $fontpath.$font;

    $box= imageftbbox( $size, 0, $fontfile, $textval, array());
    $boxwidth= $box[4];
    $boxheight= abs($box[3]) + abs($box[5]);
    $width= $boxwidth + ($padding*2) + 1;
    $height= $boxheight + ($padding) + 0;
    $textx= $padding;
    $texty= ($boxheight - abs($box[3])) + $padding;

    // create the image
    $png= imagecreate($width, $height);


    $color = str_replace("#","",$bgcolor);
    $red = hexdec(substr($bgcolor,0,2));
    $green = hexdec(substr($bgcolor,2,2));
    $blue = hexdec(substr($bgcolor,4,2));
    $bg = imagecolorallocate($png, $red, $green, $blue);

    $color = str_replace("#","",$textcolor);
    $red = hexdec(substr($textcolor,0,2));
    $green = hexdec(substr($textcolor,2,2));
    $blue = hexdec(substr($textcolor,4,2));
    $tx = imagecolorallocate($png, $red, $green, $blue);


    imagettftext( $png, $size, 0, $textx, $texty, $tx, $fontfile, $textval );

    header("content-type: image/jpeg");
    imagejpeg($png, "price".$textval.".jpg");
    imagedestroy($png);

}

Answer 1:

你是如何调用这个文件? 如果你称它里面<img>标签,或从一个CSS指令,然后做的C. Walsh说并检查文件(尖端空白:二进制数据,不包括关闭?>标签中你的脚本),以及一个字节顺序标记在你的文件的开头(使用十六进制编辑器,如PSPad了这一点)。

您可能还需要考虑,因为你的形象脚本的执行过程中可能出现的错误,在包装脚本内容ob_start()ob_end_clean()其中ob_end_clean()的头被发送之前被调用,生成图像。

如果您是直接从您希望在其中嵌入图像的文件调用它,然后用下面的HTML格式:

<img src="data:image/png;base64,DATADATADATA" alt ="" />

凡DATADATADATA是base64编码图像的版本。

看到:

  1. 数据URI方案
  2. PHP手动输入的base64_encode()


Answer 2:

该消息意味着页面已经发送了一些数据给浏览器 - 在你的PHP文件,如果你不认为这应该发生,则可能是一些空白的地方。 你将需要找到它来自哪里,将其取下。

如果它变成是空白的,然后这个线程可能会有所帮助。



Answer 3:

使用header()函数(倒数第三行)之后的任何内容已经被发送作为响应,是不可能的,因为头需要在所有HTTP通信首先发送。 确保你的PHP文件之前不要有空格<?php或之后?>



Answer 4:

你要通过输出造成的错误,你所说的“头”附近的函数结束前被发送到浏览器。

机会是你已经有了一些空白坐在你的第一个和最后一个以外<?php ?>标签。 发生这种情况时,PHP自动地发送头以表明您输出HTML文档的浏览器。 一旦发生这种情况,可以不再更改标题和PHP发出一个错误。

追查在输出是来自; 尝试查看文档的来源,并确保你没有领先/中所包含的文件结尾的空白。



文章来源: Calling a PHP function
标签: php function gd