一部のPHPでは、2つの文字列を比較する必要がありますが、ビットマスクで1つとして設定されているビットのみを比較します。このような動作をどのように実装しますか?
私はもう試した:
$string1='aaabbb';
$string2='ababbb';
$bitmask='101101';
function compare($string1, $string2, $bitmask){
$resultBitmask=(~($string1 ^ $string2)|~$bitmask);
}
わかりやすくするために、説明のためにビットマスクのようにffバイトを記述しました。ビットマスクが生成されるとき、1それらは実際には16進数になります。nullバイトffの場合も同様です。0
文字列とビットマスクは、関数が呼び出されるたびに常に異なる長さになります。比較のためにビットのセットを取得できましたが、長さが異なるため、すべてが設定されているかどうかを確認できません。現時点ではpreg_match、任意のバイト数に一致する正規表現を使用していffますが、より洗練されたソリューションはありますか?
編集:文字列は最大4096ビット長であるため、数値に変換することはできません。