PHP構造検証コード

WBOY
リリース: 2016-06-13 12:13:27
オリジナル
974 人が閲覧しました

PHP 構築検証コード

コードは次のとおりです:

<?phpheader(&#39;Content-type:image/jpeg&#39;);$width=120;$height=40;$element=array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;);$string=&#39;&#39;;for ($i=0;$i<5;$i++){<span style="white-space:pre">	</span>$string.=$element[rand(0,count($element)-1)];}$img=imagecreatetruecolor($width, $height);//设置图片大小$colorBg=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));//随机产生背景色$colorBorder=imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));//随机产生背景色$colorString=imagecolorallocate($img,rand(10,100),rand(10,100),rand(10,100));imagefill($img,0,0,$colorBg);//设置图片背景色imagerectangle($img,0,0,$width-1,$height-1,$colorBorder);//构建矩形边框for($i=0;$i<100;$i++){//画一百个小像素<span style="white-space:pre">	</span>imagesetpixel($img,rand(0,$width-1),rand(0,$height-1),imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200)));//画一个单一的像素}for($i=0;$i<3;$i++){//画三条随机线<span style="white-space:pre">	</span>imageline($img,rand(0,$width/2),rand(0,$height),rand($width/2,$width),rand(0,$height),imagecolorallocate($img,rand(100,200),rand(100,200),rand(100,200)));<span style="white-space:pre">	</span>//前两个为起点坐标,后两个为终点坐标,起点控制在左半边,终点控制在右半边}//imagestring($img,5,0,0,'abcd',$colorString);imagettftext($img,14,rand(-5,5),rand(5,15),rand(30,35),$colorString,'font/SketchyComic.ttf',$string);//绘制文字,可以选择丰富的字体的方法//说明:array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )imagejpeg($img);imagedestroy($img);
ログイン後にコピー

imagettftext() メソッドに注目してください:

配列 imagettftext ( resource$imagefloat$sizefloat $angleint$xint $yint$colorstring$fontfile文字列$text )

画像
画像リソース。 imagecreatetruecolor()を参照してください。
サイズ
フォント サイズ。 GD のバージョンに応じて、これはピクセル サイズ (GD1) またはポイント サイズ (GD2) で指定する必要があります。
角度
角系で表される角度、0度は左から右へ 本文を読みます。値が大きいほど反時計回りの回転を示します。たとえば、90 度は下から上に読むテキストを表します。
x
by x, y 表される座標は、最初の文字の基点 (おそらく文字の左下隅) を定義します。これは、x、y が最初の文字の左上隅を定義する imagestring() とは異なります。たとえば、「左上」は 0, 0 です。
y
Y 座標。文字の下部ではなく、フォントのベースラインの位置を設定します。
カラー
カラーインデックス。負のカラー インデックス値を使用すると、アンチエイリアスがオフになる効果があります。 imagecolorallocate()を参照してください。
fontfile
は、使用する TrueType フォントへのパスです。 PHP が使用する GD ライブラリによっては、fontfile/ で始まらない場合は、.ttfファイル名 が追加され、ライブラリ定義のフォント パスでそのファイル名の検索が試行されます。 バージョン 2.0.18 より前の GD ライブラリを使用する場合、異なるフォント ファイルの「パス区切り文字」としてセミコロンの代わりにスペース文字が使用されます。この機能を誤って使用すると、次の警告メッセージが表示されます: 警告: フォントが見つからない/開くことができません。影響を受けるバージョンの唯一の解決策は、スペースを含まないパスにフォントを移動することです。

多くの場合、フォントはスクリプトと同じディレクトリに配置されます。次のヒントにより、インクルージョンの問題を軽減できます。

<span style="color:rgb(0,0,187)"><?php<code><span style="color:rgb(0,0,187)"><?php<br></span><span style="color:rgb(255,128,0)">// Set the enviroment variable for GD<br></span><span style="color:rgb(0,0,187)">putenv</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(221,0,0)">'GDFONTPATH=' </span><span style="color:rgb(0,119,0)">. </span><span style="color:rgb(0,0,187)">realpath</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(221,0,0)">'.'</span><span style="color:rgb(0,119,0)">));<br><br></span><span style="color:rgb(255,128,0)">// Name the font to be used (note the lack of the .ttf extension)<br></span><span style="color:rgb(0,0,187)">$font </span><span style="color:rgb(0,119,0)">= </span><span style="color:rgb(221,0,0)">'SomeFont'</span><span style="color:rgb(0,119,0)">;<br></span><span style="color:rgb(0,0,187)">?></span> // GD の環境変数を設定します

putenv

('GDFONTPATH=' リアルパス('.')); // 使用するフォントに名前を付けます (拡張子 .ttf がないことに注意してください)$font = 'SomeFont'>?>
テキスト
テキスト文字列。 には、フォント内の位置 127 以降の文字にアクセスするための 10 進数値文字表現 (€ の形式) を含めることができます。 UTF-8 でエンコードされた文字列を直接渡すことができます。 文字列で使用されている文字がフォントでサポートされていない場合、その文字は中空の長方形に置き換えられます。

imagettftext() テキスト フレームの 4 隅を表す 8 つのセルを含む配列を返します。座るコーナー、右下コーナー、右上コーナー、左上コーナーです。これらの点はテキストに対して相対的なものであり、角度とは関係がないため、「左上」は水平方向に見たときのテキストの左上隅を指します。

例 1 imagettftext()

これサンプル スクリプトは、黒 (灰色の網掛け) の Arial フォントで「Testing...」と書かれた白の 400x30 ピクセルの PNG 画像を生成します。

<span style="color:rgb(0,0,187)"><?php<br></span><span style="color:rgb(255,128,0)">//コンテンツタイプを設定します<br></span><span style="color:rgb(0,0,187)">ヘッダー</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(221,0,0)">"Content-type: image/png"</span><span style="color:rgb(0,119,0)">);<br><br></span><span style="color:rgb(255,128,0)">// 画像を作成します<br></span><span style="color:rgb(0,0,187)">$im </span><span style="color:rgb(0,119,0)">= </span><span style="color:rgb(0,0,187)">imagecreatetruecolor</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">400</span><span style="color:rgb(0,119,0)">,</span><span style="color:rgb(0,0,187)">30</span><span style="color:rgb(0,119,0)">); <br><br></span><span style="color:rgb(255,128,0)">// いくつかの色を作成します<br></span><span style="color:rgb(0,0,187)">$white </span><span style="color:rgb(0,119,0)">= </span><span style="color:rgb(0,0,187)">imagecolorallocate</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">255</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">255</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">255</span><span style="color:rgb(0,119,0)">);<br></span><span style="color:rgb(0,0,187)">$grey </span><span style="color:rgb(0,119,0)">= </span><span style="color:rgb(0,0,187)">imagecolorallocate</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span> <span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">128</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">128</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">128</span><span style="color:rgb(0,119,0)">);<br> </span><span style="color:rgb(0,0,187)">$black </span><span style="color:rgb(0,119,0)">= </span><span style="color:rgb(0,0,187)">imagecolorallocate</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span><span style="color:rgb(0,119,0)">, </span><span style="color:rgb(0,0,187)"> 0</span><span style="color:rgb(0,119,0)">,</span><span style="color:rgb(0,0,187)">0</span><span style="color:rgb(0,119,0)">,</span><span style="color:rgb(0,0,187)">0</span><span style="color:rgb(0,119,0)">);<br></span><span style="color:rgb(0,0,187)">imagefilledrectangle</span> <span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span><span style="color:rgb(0,119,0)">, </span><span style="color:rgb(0,0,187)">0</span><span style="color:rgb(0,119,0)">, </span><span style="color:rgb(0,0,187)">0</span><span style="color:rgb(0,119,0)">, </span> <span style="color:rgb(0,0,187)">399</span><span style="color:rgb(0,119,0)">,</span><span style="color:rgb(0,0,187)">29</span><span style="color:rgb(0,119,0)">,</span><span style="color:rgb(0,0,187)">$white</span><span style="color:rgb(0,119,0)">);<br><br></span> <span style="color:rgb(255,128,0)">// 描画するテキスト <br></span><span style="color:rgb(0,0,187)">$text </span><span style="color:rgb(0,119,0)">= </span><span style="color:rgb(221,0,0)">'テスト中...'</span><span style="color:rgb(0,119,0)">;<br></span><span style="color:rgb(255,128,0)">//パスを独自のフォント パスに置き換えます<br></span><span style="color:rgb(0,0,187)">$font</span><span style="color:rgb(0,119,0)">=</span><span style="color:rgb(221,0,0)">'arial.ttf'</span><span style="color:rgb(0,119,0)">; <br><br></span><span style="color:rgb(255,128,0)">// テキストにシャドウを追加します<br></span><span style="color:rgb(0,0,187)">imagettftext</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">20</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">0</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">11</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)"> 21</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">$grey</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">$font</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">$text</span><span style="color:rgb(0,119,0)">);<br><br></span><span style="color:rgb(255,128,0)">// テキストを追加<br></span><span style="color:rgb(0,0,187)">imagettftext</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span><span style="color:rgb(0,119,0)">,</span><span style="color:rgb(0,0,187)">20</span><span style="color:rgb(0,119,0)">,</span><span style="color:rgb(0,0,187)">0 </span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">10</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">20</span><span style="color:rgb(0,119,0)">、</span><span style="color:rgb(0,0,187)">$black</span><span style="color:rgb(0,119,0)">、 </span><span style="color:rgb(0,0,187)">$font</span><span style="color:rgb(0,119,0)">, </span><span style="color:rgb(0,0,187)">$text</span><span style="color:rgb(0,119,0)">);<br><br></span><span style="color:rgb(255,128,0)">// imagepng() 結果の使用imagejpeg()<br></span><span style="color:rgb(0,0,187)">imagepng</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span><span style="color:rgb(0,119,0)">);<br></span><span style="color:rgb(0,0,187)"> と比較して、より鮮明なテキストです。 imagedestroy</span><span style="color:rgb(0,119,0)">(</span><span style="color:rgb(0,0,187)">$im</span><span style="color:rgb(0,119,0)">);<br></span><span style="color:rgb(0,0,187)">?></span>
関連ラベル:
ソース:php.cn
前の記事:static に返された変数は null になります 次の記事:Apple 購入の検証 php コードに対処するにはどうすればよいですか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート