[1] まず最初に ----------------------------- は ""ようなタグに置き換えておき、 最後にもとに戻す。 これをおこなうのがCObfHtmlBlockである。 [2] CObfText::parse 次にタグとテキストを分割してArrayにいれる。 下の例を考える。 .... text1 .... .... text2 .... .... これを以下のようなArrayに分解する。 $tt = array( 'type'=>'tag', 'str'=>'', 'type'=>'text', 'str'=>'...text1...' 'type'=>'tag', 'str'=>'', 'type'=>'text', 'str'=>'...text2...' 'type'=>'tag', 'str'=>'', ); [3] CObfText::encode 全ステップで作ったArrayの'str'を難読化する。 [3-1] まず、" "や">"のようなEntityは元の記号に直しておく //-- " " ==> " " $s = html_entity_decode($s, ENT_COMPAT, self::$encoding); ちなみに" "は non-breaking space(HTML  )に変換される。 にではない。 [3-2] mb_encode_numericentityですべての文字をEntityに変換される。 //-- encode $s = mb_encode_numericentity($s, array(0x0, 0xffff, 0, 0xffff), self::$encoding);