ホームページ >バックエンド開発 >PHPチュートリアル >PHP GD ライブラリのウォーターマークの自動行折り返しでは関数テキストを表示できません

PHP GD ライブラリのウォーターマークの自動行折り返しでは関数テキストを表示できません

WBOY
WBOYオリジナル
2016-06-23 13:10:271359ブラウズ

オンラインで見つかったいくつかのコードで構成されています。ただし、最後のステップで表示されないものは、独自のテキスト コンテンツではありません。コードは次のとおりです。

<?php  if(isset($_GET['str']) and $_GET['str']!=""){  $im = imagecreatefromjpeg('gd.jpg');  $font_size = 12;  $fontname = '33.ttf';  $black = imagecolorallocate($im,0,0,0);  $str = $_GET['str'] ;    function chararray($str,$charset="gbk"){        $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";        $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";        $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";        $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";        preg_match_all($re[$charset], $str, $match);        return $match;    }    /* 返回一个字符串在图片中所占的宽度 */    function charwidth($fontsize,$fontangle,$ttfpath,$char){        $box = @imagettfbbox($fontsize,$fontangle,$ttfpath,$char);        $width = max($box[2], $box[4]) - min($box[0], $box[6]);        return $width;    }        /* 这几个变量分别是 字体大小, 角度, 字体名称, 字符串, 预设宽度, 编码 */    function autowrap($fontsize,$fontangle,$ttfpath,$str,$width,$charset='gbk'){        $_string = "";        $_width = 0;        $temp = chararray($str);        //var_dump($temp);        foreach ($temp[0] as $k=>$v){            $w = charwidth($fontsize,$fontangle,$ttfpath,$v);            $_width += intval($w);            if (($_width > $width) && ($v !== "")){                $_string .= "\n";                $_width = 0;            }            $_string .= $v;            $w = 0;            //echo $v;        }        $_string = mb_convert_encoding($_string, "html-entities","gbk" );        return $_string;    }    $str = autowrap(12,0,'33.ttf','返回一个字符的数组',250);  imagettftext($im,$font_size,0,35,160,$black,$fontname,$str);  header('Content-type: image/jpeg');  imagejpeg($im);  imagedestroy($im) ;  } ?>


文字の配列を返す単語を str で渡されたパラメータに置き換えるにはどうすればよいですか?ありがとう、神様


ディスカッション(解決策)への返信

あなたの最後の文「1文字の配列を返す単語をstrで渡されたパラメータに置き換える方法は?」を置き換えてもらえますか? " ? "例を書いて投稿してください。上記のコードの最後のステップは何を参照していますか? imagettftext($im,$font_size,0,35,160,$black,$fontname,$str);

最後の文「「1 文字の配列を返す」という単語を str に変更するにはどうすればよいですか?パラメータについて? " 例を書いて投稿してください。上記のコードの最後のステップは何を参照していますか? imagettftext($im,$font_size,0,35,160,$black,$fontname,$str);



「文字の配列を返す」セクションを渡した関数に置き換えたいです
テキストの改行関数。 。 。私は初心者なので、コードの一部をコピーして自分で変更することしかできません。 $str = autowrap(12,0,'33.ttf','Return an array ofcharacters',250); このセクションを $ に変更します。 str = autowrap( 12,0,'33.ttf','$_GET['str']',250);
これを実行した後は、構文の問題か何かかわかりません。引用符を削除すると、空になります。 。 。問題がどこにあるのかわからないので、私はそれを解決するためにここにいます
簡単に言うと: ?str=調子はどうですか?画像に自動ラインラッピングのウォーターマークが表示されています

自分で変更して新しい関数を定義して完了です、皆さんありがとうございます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。