<\/p>\n
\nランダムな線を生成します。<\/p>\n
\n<\/p>ImageLine()関數(shù)は、x1、x2、y1、y2の座標(biāo)を、畫像參照と線の色とは別に、その順序で引數(shù)として調(diào)整します。前のステップで背景色が割り當(dāng)てられていたように、線の色は割り當(dāng)てられています。
$background_color = imagecolorallocate($image, 255, 255, 255); \n<\/span>imagefilledrectangle($image,0,0,200,50,$background_color);<\/span><\/pre>\n y座標(biāo)はrand()*として與えられます。これはボックスの高さであり、常に50未満の値を返すためです。代わりにrand(0,50)を使用できます。それらは同じ出力範(fàn)囲を生成します。 <\/p>\n
<\/p>\n
\n\n
ランダムドットを生成します。<\/p>\nランダムなドットは、ランダムな線と同じ方法で生成されます。使用される関數(shù)はImagesEtpixel()です。この関數(shù)は、ドットがボックスに配置される座標(biāo)の値を取得します。\n
\n<\/h3>X座標(biāo)は、rand()* 0を使用してランダムに生成されます。これはボックスの幅であり、常に200未満の値を返します。代わりにRAND(0,200)を使用できます。それらは同じ出力範(fàn)囲を生成します。 y座標(biāo)は、ラインステップのように生成されます。
<\/p>\n
ランダムなテキストを生成<\/h3>\n
文字列內(nèi)の位置(下品と上品の両方にアルファベットが含まれています)をランダムに指し、変數(shù)$文字<\/p>に割り當(dāng)てます。\n
<\/span>session_start();\n<\/span><\/span>?><\/span>\n<\/span>\n ><\/span>demo.php<\/title<\/span>><\/span>\n<\/span>
国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂
style=\"background-color:#ddd; <\/span>\"<\/span><\/span>><\/span>\n<\/span>\n <\/span> create_image();\n<\/span><\/span> display();\n<\/span><\/span> \/***** definition of functions *****\/\n<\/span><\/span> function display()\n<\/span><\/span> {\n<\/span><\/span> ?><\/span>\n<\/span>\n style=\"text-align:center;<\/span>\"<\/span><\/span>><\/span>\n<\/span> ><\/span>TYPE THE TEXT YOU SEE IN THE IMAGE<\/h3<\/span>><\/span>\n<\/span> ><\/span>This is just to check if you are a robot<\/b<\/span>><\/span>\n<\/span>\n style=\"display:block;margin-bottom:20px;margin-top:20px;<\/span>\"<\/span><\/span>><\/span>\n<\/span>
src=\"image.png\"<\/span>><\/span>\n<\/span> <\/div<\/span>><\/span>\n<\/span> \/\/div1 ends\n <\/div<\/span>><\/span> \/\/div2 ends\n<\/span>\n <\/span> }\n<\/span><\/span>\n<\/span> function create_image()\n<\/span><\/span> {\n<\/span><\/span> $image = imagecreatetruecolor(200, 50);\n<\/span><\/span> imagepng($image, \"image.png\");\n<\/span><\/span> }\n<\/span><\/span>\n<\/span> ?><\/span>\n<\/span> <\/body<\/span>><\/span>\n<\/span><\/span>?><\/span><\/span><\/pre>\nループ內(nèi)に置くと、このように見えます - <\/p>\n
$background_color = imagecolorallocate($image, 255, 255, 255); \n<\/span>imagefilledrectangle($image,0,0,200,50,$background_color);<\/span><\/pre>\n行を説明します<\/p>\n
$line_color = imagecolorallocate($image, 64,64,64); \n<\/span>for($i=0;$i<10;$i++) {\n<\/span> imageline($image,0,rand()%50,200,rand()%50,$line_color);\n<\/span>}<\/span><\/pre>\n次のセクションで。 <\/p>\n
関數(shù)Imagestring()は、畫像にテキストを書き込みます。 6つの引數(shù)があります:<\/p>\n
\n- 畫像參照。 <\/li>\n
- テキストのフォントサイズ(せいぜい5になることができます)。 <\/li>\n
- x-coordinate(すべてのアルファベットで比例して変更)。 <\/li>\n
- y座標(biāo)(同じものを保持しますが、これもランダムに変更できます)。 <\/li>\n
- 書き込まれる実際の文字列。 <\/li>\nテキストのフォントカラー。
- \n<\/li>\n<\/ol>より大きなフォントと異なるフォントスタイルが必要な場合は、関數(shù)ImageTtftext()を使用することもできます。テキストのアングルスタイルとフォントスタイルについて2つの追加の議論が必要です。\n
X座標(biāo)の計(jì)算は、検査によって行われます。大まかに、文字は約35ピクセル(5($ i*30))に間隔が塗られています。ここで、$ i = 0,1,2,3,4,5,6です。これは、この値を15?20px程度に保持していた場合、2文字が重複する可能性があったためです。値が40pxを超えていた場合、文字は完全にボックスに収まりませんでした。\n<\/p>これにより、6アルファベットのCaptchaテキストが生成されます。色、Y座標(biāo)など、シンプルさのために一定に保たれている側(cè)面を変更することにより、いつでもよりランダムさを作成できます。\n
最後のキャプチャはこのように見えます<\/p>\n
<\/p>\n
\n<\/p>キャプチャに記載されているテキストは、ページを更新するたびに変更されます。
\nピクセルでデザインを作成したり、色やサイズを変更したりすることで、よりランダム性を?qū)g現(xiàn)できます。\n
検証<\/p>\n
ここでは、ユーザーの応答が取得され、処理後、返信を受け取ります。最初は、入力テキストボックスと送信ボタンで簡単なフォームが作成されます。複雑なWebアプリケーションの要件に従って、キャプチャを処理する多くの方法があります。ただし、この例のためにシンプルに保つと、同じページで処理します。
\n<\/p>前のコードスニペットで説明されていない2行のラインが今すぐに登場します:
\n<\/h2>\n
$ word。= $ letter; - 連結(jié)演算子。個々の文字を次々に追加するために使用され、6文字の単語が生成されます。 <\/p>\n
$ _セッション['captcha_string'] = $ word; Captcha文字列は、検証目的で使用されるセッション変數(shù)に保存されています。\n<\/p>\n
display()の定義を変更して、フォームのような構(gòu)造を追加します。\n- 2つの提出ボタンが使用されます。1つは文字列を送信し、もう1つはページを更新します。\n<\/li>次の行は、2つのクロージングDivタグの間に追加されます(前のdisplay()関數(shù)のコメントを參照)
- \n
<\/span>session_start();\n<\/span><\/span>?><\/span>\n<\/span>\n ><\/span>demo.php<\/title<\/span>><\/span>\n<\/span> style=\"background-color:#ddd; <\/span>\"<\/span><\/span>><\/span>\n<\/span>\n <\/span> create_image();\n<\/span><\/span> display();\n<\/span><\/span> \/***** definition of functions *****\/\n<\/span><\/span> function display()\n<\/span><\/span> {\n<\/span><\/span> ?><\/span>\n<\/span>\n style=\"text-align:center;<\/span>\"<\/span><\/span>><\/span>\n<\/span> ><\/span>TYPE THE TEXT YOU SEE IN THE IMAGE<\/h3<\/span>><\/span>\n<\/span> ><\/span>This is just to check if you are a robot<\/b<\/span>><\/span>\n<\/span>\n style=\"display:block;margin-bottom:20px;margin-top:20px;<\/span>\"<\/span><\/span>><\/span>\n<\/span>
src=\"image.png\"<\/span>><\/span>\n<\/span>