パスワードに少なくとも1つの大文字と1つの記号または数字が必要になるようにメソッドを作成しています。文字列を分割して文字を失い、preggmatchを使用して、大文字と記号/数字が1つ含まれているかどうかをカウントすることを考えていました。
しかし、私はアクションスクリプトでこのようなことをしましたが、これがPHPでどのように呼び出されるのかわかりません。 Wordのすべての文字を配列に入れる方法が見つかりません。
AS3の例
for(var i:uint = 0; i < thisWordCode.length -1 ; i++)
{
thisWordCodeVerdeeld[i] = thisWordCode.charAt(i);
//trace (thisWordCodeVerdeeld[i]);
}
ありがとう、マシー
配列インデックスにアクセスするのと同じ方法で、文字列内の文字にアクセスできます。
$length = strlen($string);
$thisWordCodeVerdeeld = array();
for ($i=0; $i<$length; $i++) {
$thisWordCodeVerdeeld[$i] = $string[$i];
}
次のこともできます。
$thisWordCodeVerdeeld = str_split($string);
ただし、文字列全体を文字列として検証する方が簡単な場合があります。正規表現を使用します。
str_split で文字列を配列に変換し、foreachを使用できます
$chars = str_split($str);
foreach($chars as $char){
// your code
}
配列の場合と同様に、[]
を使用して文字列にアクセスできます。
$stringLength = strlen($str);
for ($i = 0; $i < $stringLength; $i++)
$char = $str[$i];
str_split()
関数はマルチバイトに対して安全ではないため、UTF-8エンコード文字列を分割する簡単な解決策は、 preg_split()
with u (PCRE_UTF8)
修飾子。
preg_split( '//u', $str, null, PREG_SPLIT_NO_EMPTY )
多くの文字列を繰り返し処理する場合、読みにくくはなりますが、パフォーマンスが向上するソリューションは、isset
を使用して文字列の終わりを確認することです。 isset
は言語構成体であり、strlen
は関数であるため、パフォーマンスが向上する可能性があります。
for ($i = 0; isset($value[$i]); $i++) {
"do something here"
}
この質問 はより多くの背景を提供する必要があります。