phpでeuc2sjis変換

標準の関数を使えないphpのバージョンを使用しなくてはならない機会があったので、euc2sjisの関数を自作しました。
覚書程度に・・・

使用方法
$SJISの文字変数 = conv_euc2sjis( $EUCの文字列 );

function conv_euc2sjis( $moji )
{
$n;
$c1 = 0;
$c2 = 0;
$sjis_moji = '';
$hai_moji = str_split( $moji );//文字列を配列にする
$hai_len = count( $hai_moji );
for( $i=0 ; $i < $hai_len ; $i++ )
{
$c1 = $hai_moji[$i];
if (ord($c1) < 0x80) {
$sjis_moji .= $c1;
continue;
}
$i++;
if( $i >= $hai_moji )
{
break;
}
$c2 = $hai_moji[$i];
if (ord($c1) == 0x8E) {
$euc_moji .= $c2;
continue;
}
conv_sub_euc2sjis($c1, $c2);
$sjis_moji .= $c1;
$sjis_moji .= $c2;
}
return $sjis_moji;
}

function conv_sub_euc2sjis( &$moji_kj1, &$moji_kj2)
{
$kj1 = ord($moji_kj1);
$kj2 = ord($moji_kj2);
if ( $kj1 & 0x01 ) {
$kj1 = $kj1 >> 1;
if ($kj1 < 0x6F) {
$kj1 = $kj1 + 0x31;
} else
{
$kj1 = $kj1 + 0x71;
}
if ( $kj2 > 0xDF )
{
$kj2 = $kj2 - 0x60;
} else
{
$kj2 = $kj2 - 0x61;
}
} else {
$kj1 = $kj1 >> 1;
if ( $kj1 < 0x6F )
{
$kj1 = $kj1 + 0x30;
} else
{
$kj1 = $kj1 + 0x70;
}
$kj2 = $kj2 - 0x02;
}
$moji_kj1 = chr($kj1);
$moji_kj2 = chr($kj2);
}