[英]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編碼版本。
看到:
在發送任何內容作為響應之后,不能使用header()函數(最后一行),因為在所有http通信中都必須首先發送標頭。 確保你的PHP文件之前不要有空格<?php
或之后?>
您收到的錯誤是由於在函數結尾附近調用“標頭”之前將輸出發送到瀏覽器引起的。
您的第一個和最后一個<?php ?>
標記之外可能有一些空白。 發生這種情況時,PHP會自動將標頭發送到瀏覽器,指示您正在輸出HTML文檔。 一旦發生這種情況,您將無法再更改標頭,並且PHP會發出錯誤。
跟蹤輸出的來源; 請嘗試查看文檔的來源,並確保所包含的文件中沒有開頭/結尾的空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.