一部の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ビット長であるため、数値に変換することはできません。