PHPのCana Captcha-簡単です!







このトピックでは、カナキャプチャ、それが何であるか、どのように動作するか、PHPを使用して作成する方法について簡単に説明します。







カタカナ



日本語では、2つの音節アルファベット(カタカナ、ひらがな)と親中国語(漢字)が録音に使用されます。 ちなみに、漢字は漢字の発音とほとんど共通点がありません。 彼らは私たちの時代の初めに日本に持ち込まれ、独自の方法で発展しました(マネガン)。 数え切れないほどの漢字があります(2〜4千の漢字の知識は、日本語教育の最高レベルであると考えられています)。 音節文字の場合、すべてがシンプルで、ひらがな(何でも書くことができます)には47個の基本文字があり、同じ数の文字がカタカナにあります(たとえば、モニタ(mo-ni-ta)モニター)。



音節文字は、各記号が1つの子音と1つの母音で構成される音節であるため、正確に命名されます(母音と子音「n」を除き、これらの記号には独自の記号があります)。 主なものはひらがなであり(ひらがなの転写は、教育水準の低い人々の便宜のために漢字で規定されている場合もあります)、カタカナは二次的なものです。 今日私たちが検討するのは彼女です。



そして、カタカナ文字が最も書きやすいので、それを考慮します。したがって、私たち馬鹿外人は、それらを入力して認識しやすくなります。 ちなみに、日本の子供たちはまず同じ理由で片仮名を勉強します。



ちょっとした追加-トピックのカタカナの冒頭の写真では、「チューリングテスト」(ti-u-ri-n-gu-te-su-that)と言います。これは「チューリングテスト」を意味します。 チューリングは外国の固有名詞であるため、カタカナで書かれています。 「テスト」の場合、理由はこの単語が借用されているためです。



開発



それまでの間、馬鹿外人、かなキャプチャーのことを思い出してください。 これは、 転写を入力する必要があるフィールドに、カタカナ\ひらがなのシンボルが付いた画像です。 システム内の全員が必要な文字の入力をサポートしているわけではないからです。



基礎として、私は自分のスクリプトを取りそれを少しだけ修正します。 まず、カナキャプチャがどのようになるかを決定します。 白い背景に2つまたは3つの黒のカタカナ記号と黒い線が交差します。



手始めに、スクリプトのわいせつなものをすべて取り除きたいです。 vyrviglaznyの背景を削除し、テキストと行を黒にします。 これを取得します。









次は、カタカナを写真に写します。 まず、フォントを決めましょう。日本語の音節のアルファベットについては、 MS Gothicの最高のバージョンで、最もかわいいフォントだと思います。 驚いたことに、.TTCフォントはPHPでまったく正常に受け入れられました。 正直なところ、私はこのタイプのTrueTypeフォントで多くのhemoを期待していました。



次に、キャプチャコードを生成するスクリプトを変更する必要があります。 まず、すなわち、彼に新しい文字を養うために: "アイウエオカキクケコサシスセソタチツテトナニネヌノハヒフヘホマミムメモヤヨラリルレロワンユーチューブ"。 これらはすべてカタカナの主人公です。 生成関数は次のようになります。
function generate_code() { $chars = 'アイウエオカキクケコサシスセソタチツテトナニネヌノハヒフヘホマミムメモヤユヨラリルレロワン'; $length = rand(2, 3); $numChars = mb_strlen($chars, "UTF-8"); $str = ''; for ($i = 0; $i < $length; $i++) { $str .= mb_substr($chars, rand(1, $numChars) - 1, 1, "UTF-8"); } return $str; }
      
      



注意してください! strlenおよびsubstr関数のマルチバイトバリアントを使用します。



次に、生成スクリプトで文字のランダムな位置を少し作成し、マルチバイト関数も導入します。
  $x = rand(0, 35); for($i = 0; $i < mb_strlen($code, "UTF-8"); $i++) { $x+=27; $letter=mb_substr($code, $i, 1, "UTF-8"); imagettftext ($im, $font_arr[$n]["size"], rand(3, 4), $x, rand(54, 55), "000000", img_dir.$font_arr[$n]["fname"], $letter); }
      
      



その結果、次のようになります。









ほぼ完了。 カタカナ記号と正確に正しいバージョンを入力して、キャプチャの動作を確認しました。 しかし、馬鹿外人は日本語文字の入力をサポートしていないのは何ですか? トランスクリプションで検証が行われることを確認する必要があります。 これを行うには、関数全体を記述する必要があります。
 function kanatoroma($str){ $replace_of = array('ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ', 'サ','シ','ス','セ','ソ','タ','チ','ツ','テ','ト','ナ','ニ','ネ','ヌ', 'ノ','ハ','ヒ','フ','ヘ','ホ','マ','ミ','ム','メ','モ','ヤ','ユ','ヨ', 'ラ','リ','ル','レ','ロ','ワ','ン'); $replace_by = array('a','i','u','e','o','ka','ki','ku', 'ke','ko','sa','shi','su','se','so','ta','chi','tsu','te', 'to','na','ni','ne','nu','no','ha','hi','fu','he','ho','ma', 'mi','mu','me','mo','ya','yu','yo','ra','ri','ru','re','ro','wa','n'); $_result = str_replace($replace_of, $replace_by, $str); return $_result; }
      
      





このすばらしい機能を使用して、正しいキャプチャソリューションをローマ字の形式でセッションに保存します。

それだけです:)かなキャプチャの準備ができました!

カタカナの知識を試す

チート



ちなみに、私はこのドメインを意図的に取ったので、将来はあらゆる種類のおしゃれなものをホストし、ハブで公開します:)



そして、はい、これはキャプチャに関する私の最後のトピックではありません、最も興味深いのは先です:)



All Articles