PHP 構築検証コード
コードは次のとおりです:
<?phpheader ('Content-type:image/jpeg');$width=120;$height=40;$element=array('a','b','c','d','e','f','g','h','i','j','k','m','n','o','p','q','r','s','t','u','v','w','x','y','z');$string='';for ($i=0;$i<5;$i++){<span style="white-space:pre"> $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 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 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() メソッドに注目してください:
- 画像
- 画像リソース。 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> </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>

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック









