簡體   English   中英

調用PHP函數

[英]Calling a PHP function

我有以下函數,該函數基於text參數生成並保存圖像。 如何在文件中稱呼它? 我試過了

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);

}

該消息表示該頁面已經向瀏覽器發送了一些數據–如果您不認為這應該發生,則可能是PHP文件中的某個空格。 您需要找到它的來源並將其刪除。

如果確實是空格,那么此線程可能會有所幫助。

您如何調用此文件? 如果要在<img>標記內或從CSS指令中調用它,請按照C的操作進行操作。Walsh說,並檢查文件中的空格(提示:對於二進制數據,請不要在其中包含結束符?>標記您的腳本)以及文件開頭的字節順序標記 (為此使用HEX編輯器(如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()

在發送任何內容作為響應之后,不能使用header()函數(最后一行),因為在所有http通信中都必須首先發送標頭。 確保你的PHP文件之前不要有空格<?php或之后?>

您收到的錯誤是由於在函數結尾附近調用“標頭”之前將輸出發送到瀏覽器引起的。

您的第一個和最后一個<?php ?>標記之外可能有一些空白。 發生這種情況時,PHP會自動將標頭發送到瀏覽器,指示您正在輸出HTML文檔。 一旦發生這種情況,您將無法再更改標頭,並且PHP會發出錯誤。

跟蹤輸出的來源; 請嘗試查看文檔的來源,並確保所包含的文件中沒有開頭/結尾的空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM