文字列の中の全角文字をを取り除くか、別の文字に変換するために以下のようにしてみました。mb_strlenとstrlenを使っています。
$line = 123あいう456
$newline = '';
for ($i = 0;$i <= mb_strlen($line);$i++){
if (strlen(mb_substr($line,$i,1)) == mb_strlen(mb_substr($line,$i,1))){
$newline .= mb_substr($line,$i,1);
}else{
$newline .= 'a';
}
}
結果は 123aaa456となります。
else内を消せば、結果は123456です。
単純に半角にするだけならmb_convert_kanaが使えます。半角に対応のない全角文字を消去または置き換える場合には使えません。