こんばんは。最近、パスワードとその安全なストレージの話題について少し触れました。つまり、ハッシュ関数について勉強しました。 今日はパスワードとそのストレージの話題を少し続けて、あなたができる機能について勉強します。 文字列の先頭と末尾からスペースを削除する。 そして、ここにパスワードと 文字列からスペースを削除する、 あなたが教えて? まず、この関数は、もちろんパスワードに特に関係するものではなく、文字列に対してのみ機能します。また、パスワードについてはその応用としてのみ述べました。 そのため、状況に応じて、いつでもどこでも好きなときに使用できます。
それはなんのためですか? 行頭と行末のスペースをトリミングする? 登録時にサイトでパスワードを指定し、何らかの理由で誤ってスペースバーを押してそれに気づかなかった場合、パスワードは、たとえば 4 文字ではなく、スペースを含めて 5 文字で構成されます。 また、この文字列のハッシュが異なるため、パスワードが適切でない理由がわかりません。 したがって、そのようなニュアンスを避けるために、行内のスペースをトリミングすることを常にお勧めします。 次に、実際の例を検討していきます。
$string_pass = " 1234 "
;
$password = md5(trim($string_pass ));
$password2 = md5($string_pass );
エコー $パスワード;
エコー "
"
;
エコー $パスワード2;
?>
パスワードとなる変数を作成し、行頭と行末にスペースを指定します。 次に、ハッシュ化されたパスワードが格納される変数を作成し、その行を次のように渡します。 トリム機能, これにより、最初に不要なスペースがすべて削除され、それから初めてハッシュ化されたパスワードが取得されます。 また、2 番目の変数では、スペースを削除して文字列をすぐにハッシュする関数を使用しません。 次に、2 つの結果をブラウザ画面に表示すると、両方とも同じ文字列を使用したにもかかわらず、それらがまったく異なることがわかります。 ただし、スペースによって結果はまったく異なりますので、この点には十分な注意が必要です。 そして最後に一つお伝えしておきたいことがあります。 行頭または行末のスペースを削除する関数がさらに 2 つあり、それらは次のように呼ばれます。 ルトリムそして rtrimそれぞれ。 したがって、いずれかの側面からスペースを削除する必要がある場合は、それらを使用してください。 これでこの記事を締めくくり、あなたのすべての仕事が成功することを祈っています。
テキストを扱うときは、多くの場合、テキストを書式設定する必要があります。 これは、正しく表示し、読みやすくするために必要です。 これは、ユーザーが情報を入力して間違いを犯した場合に必要です。スペースを 1 つではなく 2 つ指定し、先頭にタブを置きます。 PHP でスペースを削除するには、いくつかの方法があります。
トリム()
Trim 関数は、文字列の先頭または末尾にある余分な文字を探します。 これ:
- 通常のスペース。
- 集計;
- 改行文字。
次の形式で記述されます。
文字列トリム (string $str [, string $character_mask = "\t\n\r\0\x0B" ])
$str は処理される文字列で、$character_mask は追加の文字です。 $character_mask はオプションの属性です。
Preg_replace
正規表現を使って文字を検索・置換する機能です。
混合 preg_replace (混合 $pattern 、混合 $replacement 、混合 $subject [, int $limit = -1 [, int &$count ]])
- $pattern - 探しているパターン。
- $replacement - 置換する文字。
- $subject - 処理されるオブジェクト。
- $limit - 行われた置換の数。
$pattern と $replacement には配列を指定できます。 この場合、インデックスに従って置換が行われる。
Str_replace()
PHP では、str_replace() メソッドを使用して文字列からスペースを削除できます。 出現する検索文字列をすべて置換文字列に置き換えます。
混合 str_replace (混合 $search 、混合 $replace 、混合 $subject [, int &$count ])
簡素化された preg_replace() メソッドとして使用されます。
- $search - 検索する値。
- $replace - 置換される文字列。
- $subject - 検索と置換が実行されるオブジェクト。
- $count は置換の数を設定します。
スペースの検索と置換の例
これらの関数は、ほとんどの状況に適用され、さらに複雑な状況にも適用されます。
たとえば、ユーザーが後で画面に印刷されるデータを入力したとします。 テキスト全体の読みやすさと認識を改善するには、この情報を処理する必要があります。つまり、繰り返されるスペースを削除し、単一のスペースに置き換えます。
$text1 = "余分なスペースを含む長いテキスト";
この場合、単語の間に 2 つと 3 つのスペースがあることがわかります。 PHPでスペースを削除する手順は以下の通りです。
1. まず、関数を使用して文字列を文字列の配列に変換する必要があります。
Explode(“ ”, $text1)
単一のスペースが区切り文字として使用されます。 こうすることで、配列の個別の要素ではない本体部分に含まれるスペースが 1 つ少なくなります。
2. 結果は次のような文字列の配列になります。
$array = [「長い」、「ボリュームがある」、「テキスト」、「あり」、「余分なスペース」]
3. 各要素は関数によって処理されます。
Preg_replace("/\s+/", " ", $text1)
1 つ以上のスペースを検索するには、正規表現 /\s+/ を使用します。 見つかったすべての一致は文字列「 」に置き換えられます。 検索は $text1 変数で実行されます。
4. その結果、ユーザーが認識しやすい、正しい数のスペースを含む文字列が得られます。
どの言語でも、文字列を扱うときの一般的な作業は、行頭と行末の両方にあるスペースを削除することです。 PHP には、これらの目的のために ltrim()、rtrim()、trim() という 3 つの関数があります。 ltrim() 関数は行頭のスペースを削除し、rtrim() 関数は行末を削除し、trim() 関数は先頭と末尾の両方を削除します。 興味深いのは、これらの関数は、スペースに加えて、改行、復帰、タブ、および NULL 文字のエスケープ シーケンスも削除することです。
$example = "\t皆さん、こんにちは\n"; var_dump(trim($example)); var_dump(rtrim($example)); var_dump(ltrim($example));
結果として、次のことが得られます。
文字列 "皆さんこんにちは" (長さ=12) 文字列 "皆さんこんにちは" (長さ=14) 文字列 "皆さんこんにちは" (長さ=13)
最も興味深いのは、上記の関数はユーザー指定の文字も削除できることです。 これを行うには、上記の関数は、削除する文字を含む文字列を 2 番目の引数として渡す必要があります。 例えば:
$example = "皆さん、こんにちは\n"; var_dump(trim($example, " y")); var_dump(rtrim($example, " y\n")); var_dump(ltrim($example, " yH"));
結果として:
文字列「こんにちはみなさん」 (長さ=13) 文字列「yHi みなさん」 (長さ=13) 文字列「i みなさん」 (長さ=12)